/ / Pole wejściowe podświetlenia sprawdzania poprawności formularza Spring-MVC po sprawdzeniu poprawności DAO - java, spring, validation, spring-mvc

Sprawdzanie poprawności formularza Spring-MVC podświetla pole wprowadzania po walidacji DAO - java, spring, validation, spring-mvc

Konwertuję projekt Struts 1.3 na Spring. Zamiast pól formularza rozpórki, używam formy Spring.

Użyłem ActionErrors w rozpórkach, aby podświetlić pole za pomocą atrybutu errorStyleClass.

Podobnie wiosną dostępny jest cssErrorClass. Ale jak z niego korzystać po sprawdzeniu poprawności 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;
}

Odpowiedzi:

0 dla odpowiedzi № 1

Musisz opatrzyć adnotacje swoimi jednostkami za pomocą środowiska Java Bean Validation JSR 303, lubię to

public class Model{
@NotEmpty
String filed1;

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

....
}

I dodaj @Valid do twojego kontrolera, tak jak to

public class MyController {

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

Możesz znaleźć więcej przykładów tutaj i tutaj

EDYTOWAĆ:

Jeśli chcesz zarejestrować więcej błędów na podstawie niestandardowych kroków sprawdzania poprawności w kodzie, możesz użyć rejectValue() metoda w BindingResult przykład, jak poniżej:

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