我正在将Struts 1.3项目转换为Spring。我使用弹簧形式而不是struts形式字段。
我在struts中使用了ActionErrors来使用errorStyleClass属性突出显示该字段。
同样,在spring中,cssErrorClass可用。但是,如何在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;
}
答案 0 :(得分:0)
您需要使用Java Bean验证框架JSR 303
注释您的实体,如此
public class Model{
@NotEmpty
String filed1;
@Range(min = 1, max = 150)
int filed2;
....
}
将@Valid
添加到您的控制器,就像这样
public class MyController {
public String controllerMethod(@Valid Customer customer, BindingResult result) {
if (result.hasErrors()) {
// process error
} else {
// process without errors
}
}
编辑:
如果您想根据代码中的自定义验证步骤注册更多错误,可以在rejectValue()
实例中使用BindingResult
方法,如下所示:
bindingResult.rejectValue("usernameField", "error code", "Not Found username message");