Java Spring MVC表单验证突出显示DAO验证后的输入字段
我正在将Struts 1.3项目转换为Spring。我使用的不是struts表单字段,而是spring表单 我在struts中使用ActionErrors来突出显示使用errorStyleClass属性的字段 类似地,在spring中,cssErrorClass也可用。但是,在dao验证之后如何使用它呢Java Spring MVC表单验证突出显示DAO验证后的输入字段,java,spring,validation,spring-mvc,Java,Spring,Validation,Spring Mvc,我正在将Struts 1.3项目转换为Spring。我使用的不是struts表单字段,而是spring表单 我在struts中使用ActionErrors来突出显示使用errorStyleClass属性的字段 类似地,在spring中,cssErrorClass也可用。但是,在dao验证之后如何使用它呢 @RequestMapping(value = "/login", method = RequestMethod.POST) public String login(@ModelAttribut
@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;
}
您需要使用JavaBean验证框架
JSR303
对实体进行注释,如下所示
public class Model{
@NotEmpty
String filed1;
@Range(min = 1, max = 150)
int filed2;
....
}
public class MyController {
public String controllerMethod(@Valid Customer customer, BindingResult result) {
if (result.hasErrors()) {
// process error
} else {
// process without errors
}
}
并将@Valid
添加到控制器中,如下所示
public class Model{
@NotEmpty
String filed1;
@Range(min = 1, max = 150)
int filed2;
....
}
public class MyController {
public String controllerMethod(@Valid Customer customer, BindingResult result) {
if (result.hasErrors()) {
// process error
} else {
// process without errors
}
}
你可以找到更多关于它的例子
编辑:
如果要根据代码中的自定义验证步骤注册更多错误,可以在实例中使用方法,如下所示:
bindingResult.rejectValue("usernameField", "error code", "Not Found username message");
你看过这个问题吗?是的。我见过这个例子。但是,它说,没有定义验证方法。如果要创建验证方法,那么内部的实现应该是什么?您好。我的问题是,在另一部分中,我要调用dao并验证数据库中的登录凭据。如果详细信息不正确,您将如何再次在else部分(在db调用之后)实现与result.hasErrors()相同的场景?Hi Friend<代码>结果.拒绝值(“用户名字段”,“错误代码”,“未找到用户名消息”)代码>工作正常。