¿Es útil BindingResult
para enlazar solo excepciones con vista, o alguna otra cosa?¿Cuál es el uso de la interfaz BindingResult en Spring MVC?
¿cuál es el uso exacto de BindingResult
?
O es útil en el atributo de modelo de enlace con la vista.
¿Es útil BindingResult
para enlazar solo excepciones con vista, o alguna otra cosa?¿Cuál es el uso de la interfaz BindingResult en Spring MVC?
¿cuál es el uso exacto de BindingResult
?
O es útil en el atributo de modelo de enlace con la vista.
Ejemplo particular: utilice un objeto BindingResult como argumento para un método de validación de un Validator dentro de un controlador.
A continuación, se puede comprobar este objeto en busca de errores de validación:
validator.validate(modelObject, bindingResult);
if (bindingResult.hasErrors()) {
// do something
}
Desde el Spring documentation oficial:
interfaz general que representa resultados de unión. Amplía la interfaz para capacidades de registro de error, lo que permite un validador para ser aplicado, y añade unión específica de análisis y modelo edificio.
Sirve como titular resultado para un DataBinder, obtenida a través del método DataBinder.getBindingResult(). Las implementaciones de BindingResult también se pueden usar directamente, por ejemplo, para invocar un Validator en él (por ejemplo, como parte de una prueba unitaria).
BindingResult se utiliza para la validación ..
Ejemplo: -
public @ResponseBody String nutzer(@ModelAttribute(value="nutzer") Nutzer nutzer, BindingResult ergebnis){
String ergebnisText;
if(!ergebnis.hasErrors()){
nutzerList.add(nutzer);
ergebnisText = "Anzahl: " + nutzerList.size();
}else{
ergebnisText = "Error!!!!!!!!!!!";
}
return ergebnisText;
}
Básicamente es un BindingResult
interfaz que dicta cómo el objeto que almacena el resultado de la validación debe almacenar y recuperar el resultado de la validación (errores, intento de obligar a los campos no permitidos, etc.)
De Spring MVC Form Validation with Annotations Tutorial:
[
BindingResult
] es objeto de Primavera que contiene el resultado de la validación y vinculante y contiene errores que puedan haber ocurrido. ElBindingResult
debe ir justo después del objeto modelo que está validado o de lo contrario, Spring no podrá validar el objeto y lanzará una excepción .Cuando Spring ve
@Valid
, intenta encontrar el validador para el objeto validado. Spring toma automáticamente las anotaciones de validación si tiene activada la "anotación". Spring then invoca el validador y pone cualquier error enBindingResult
y agrega BindingResult al modelo de vista.
Es importante tener en cuenta que el orden de los parámetros es realmente importante para la primavera. BindingResult debe aparecer justo después del Formulario que se está validando. Del mismo modo, el parámetro del modelo [opcional] debe venir después del BindingResult. Ejemplo:
Válido:
@RequestMapping(value = "/entry/updateQuantity", method = RequestMethod.POST)
public String updateEntryQuantity(@Valid final UpdateQuantityForm form,
final BindingResult bindingResult,
@RequestParam("pk") final long pk,
final Model model) {
}
no válido:
RequestMapping(value = "/entry/updateQuantity", method = RequestMethod.POST)
public String updateEntryQuantity(@Valid final UpdateQuantityForm form,
@RequestParam("pk") final long pk,
final BindingResult bindingResult,
final Model model) {
}
este enlace muestra perfectamente por qué utilizamos BindingResult http://codetutr.com/2013/05/28/spring-mvc-form-validation/ – keshav
Todavía no lo entiendo, ¿qué estamos vinculando exactamente lol –