/ / Spring-MVC validation do formulário realçar o campo de entrada após a validação do DAO - java, spring, validation, spring-mvc

Validação de formulário Spring-MVC destaca o campo de entrada após a validação do DAO - java, spring, validation, spring-mvc

Estou convertendo o projeto Struts 1.3 para Spring. Em vez de campos de formulário struts, estou usando o formulário spring.

Eu usei ActionErrors em struts para destacar o campo usando o atributo errorStyleClass.

Da mesma forma, na primavera, o cssErrorClass está disponível. Mas, como usá-lo após a validação dao?

@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login(@ModelAttribute("login") @Validated Login login, BindingResult result, Model model) {

if (result.hasErrors()) {

//THIS VALIDATION DONE BY ANNOTATION AND HIGHLIGHTING THE FIELD
//USING "cssErrorClass"

return HOMEPAGE;
}

boolean checkAuthentication = authService.checkAuthentication(login);

if(!checkAuthentication){

// HOW TO SET THE ERROR HERE?

// Is there any way to set the error like

// error.setMessage("userId","invalid.data");

// so that, is it possible to display error message by
// highlighting the fields using "cssErrorClass"?

}


return HOMEPAGE;
}

Respostas:

0 para resposta № 1

Você precisa anotar suas entidades usando a estrutura de validação do Java Bean JSR 303, como isso

public class Model{
@NotEmpty
String filed1;

@Range(min = 1, max = 150)
int filed2;

....
}

E adicione @Valid para o seu controlador, assim

public class MyController {

public String controllerMethod(@Valid Customer customer, BindingResult result) {
if (result.hasErrors()) {
// process error
} else {
// process without errors
}
}

Você pode encontrar mais exemplos para isso Aqui e Aqui

EDITAR:

Se você desejar registrar mais erros com base nas etapas de validação personalizadas no código, poderá usar rejectValue() método no BindingResult exemplo, assim:

bindingResult.rejectValue("usernameField", "error code", "Not Found username message");