java – Spring mvc表单错误没有在jsp上进行过
发布时间:2020-12-15 02:13:38 所属栏目:Java 来源:网络整理
导读:我正在尝试验证登录表单.单击登录按钮后,控件进入我的控制器类,并在BindingResult的帮助下,我也知道我的字段有错误,但我无法在我的jsp页面上显示错误.我已经尝试过rejectValue方法,但是我的jsp页面抛出异常,即属性不可读e.t.c 这是我的模特课. public class
我正在尝试验证登录表单.单击登录按钮后,控件进入我的控制器类,并在BindingResult的帮助下,我也知道我的字段有错误,但我无法在我的jsp页面上显示错误.我已经尝试过rejectValue方法,但是我的jsp页面抛出异常,即属性不可读e.t.c
这是我的模特课. public class UserBean { @NotEmpty private String username; @NotEmpty private String password; public String getPassword() { return this.password; } public String getUsername() { return this.username; } public void setUsername(String username) { this.username = username; } public void setPassword(String password) { this.password = password; } } 这是我的JSP页面. <form:form method="POST" modelAttribute="login-entity" action="process-login.html"> <table> <tr> <td><form:label path="username">username:</form:label></td> <td><form:input path="username" /></td> <td><form:errors path="username" /></td> </tr> <tr> <td><form:label path="password">password:</form:label></td> <td><form:input path="password" /></td> <td><form:errors path="password" /></td> </tr> <tr> <td colspan="2"><input type="submit" value="Login" /></td> </tr> </table> </form:form> 这是我的控制器类. @RequestMapping(value = "/process-login",method = RequestMethod.POST) public ModelAndView processLogin(@Valid UserBean loginModel,BindingResult bindingResult,Model model) { if(bindingResult.hasErrors()) { ModelAndView errorView = new ModelAndView("loginpage"); bindingResult.rejectValue("username","invalid username"); bindingResult.rejectValue("password","invalid password"); errorView.addObject("login-entity",bindingResult.getModel()); return errorView; } return new ModelAndView("redirect:/some_other_page","",""); } 在调试时,我的最终错误视图对象包含这个东西. ModelAndView: reference to view with name 'loginpage'; model is {login-entity={userBean=UserBean [userId=0,username=,password=],org.springframework.validation.BindingResult.userBean=org.springframework.validation.BeanPropertyBindingResult: 4 errors Field error in object 'userBean' on field 'username': rejected value []; codes [NotEmpty.userBean.username,NotEmpty.username,NotEmpty.java.lang.String,NotEmpty]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [userBean.username,username]; arguments []; default message [username]]; default message [may not be empty] Field error in object 'userBean' on field 'password': rejected value []; codes [NotEmpty.userBean.password,NotEmpty.password,NotEmpty]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [userBean.password,password]; arguments []; default message [password]]; default message [may not be empty] Field error in object 'userBean' on field 'username': rejected value []; codes [invalid username.userBean.username,invalid username.username,invalid username.java.lang.String,invalid username]; arguments []; default message [null] 有人可以帮忙吗?我想我错过了一些非常基本的东西. 解决方法
从控制器重定向到.jsp页面并向其分配错误消息时,可以向请求添加属性(ServletRequest.setAttribute(String var1,Object var2);) 然后在您的jsp页面中,查找属性并相应地处理错误消息
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |