SpringMVC在Java中使用hibernate验证程序的不同部分
我的问题是,我只想在登录页面中使用用户名和用户密码hibernate验证。也不适用于useremail。我为注册页面或其他内容保留了useremail hibernate验证注释。因此,当我尝试登录页面时,出现了登录错误。(请输入您的电子邮件),但我不想包含该错误。只需检查用户名和用户密码。我如何处理该错误SpringMVC在Java中使用hibernate验证程序的不同部分,java,spring,hibernate,validation,Java,Spring,Hibernate,Validation,我的问题是,我只想在登录页面中使用用户名和用户密码hibernate验证。也不适用于useremail。我为注册页面或其他内容保留了useremail hibernate验证注释。因此,当我尝试登录页面时,出现了登录错误。(请输入您的电子邮件),但我不想包含该错误。只需检查用户名和用户密码。我如何处理该错误 @RequestMapping(value = "/",method=RequestMethod.GET) public String displayUserForm(Mod
@RequestMapping(value = "/",method=RequestMethod.GET)
public String displayUserForm(ModelMap model,HttpServletRequest request){
model.addAttribute("usertable",new usertable());
return "login";
}
以上内容用于登录到login.jsp
private Integer userid;
@NotEmpty(message = "Please enter your username.")
private String username;
@NotEmpty(message = "Please enter your password.")
private String userpw;
@NotEmpty(message = "Please enter your email.")
private String useremail;
以上是pojo类的一部分
<div style="color:red">${errorMessage}</div>
<form:form method="POST" commandName="usertable" action="/Proje/loginiscorrect">
<form:errors path="*" cssClass="errorblock" element="div" />
<table>
<tr>
<td>User Name :</td>
<td><form:input path="username" /></td>
<td><form:errors path="username" cssClass="error" /></td>
</tr>
<tr>
<td>User Password :</td>
<td><form:input path="userpw" /></td>
<td><form:errors path="userpw" cssClass="error" /></td>
</tr>
<tr>
<td colspan="3"><input type="submit" value="LOGIN"/></td>
</tr>
</table>
</form:form>
以上内容用于通过pojo类注释中的hibernate验证程序进行检查。可以使用
hibernate组以这种方式进行检查
为组名创建标记接口
public interface LoginGroup {}
在您的域对象中
private Integer userid;
@NotEmpty(message = "Please enter your username.", groups={LoginGroup.class})
private String username;
@NotEmpty(message = "Please enter your password.", groups={LoginGroup.class})
private String userpw;
@NotEmpty(message = "Please enter your email.")
private String useremail;
在控制器方法中,使用@Validated
指定组
@RequestMapping(value="/loginiscorrect",method=RequestMethod.POST)
public String LoginUser(@Validated(LoginGroup.class) kisitablo kisitablo, BindingResult result,HttpServletRequest request,HttpServletResponse response) {
if (result.hasErrors()) {
return "login";
}
//Your logic.....
}
此外,对于您的注册页面,如果您希望验证所有用户名、密码和电子邮件,您可以指定如下
创建一个新的界面
作为注册组
public interface RegistrationGroup {}
您的型号:
private Integer userid;
@NotEmpty(message = "Please enter your username.", groups={LoginGroup.class, RegistrationGroup.class})
private String username;
@NotEmpty(message = "Please enter your password.", groups={LoginGroup.class, RegistrationGroup.class})
private String userpw;
@NotEmpty(message = "Please enter your email.", groups={RegistrationGroup.class})
private String useremail;
在控制器方法中执行与前面相同的操作,并将RegistrationGroup.class
指定为@Validated(RegistrationGroup.class)
有关更多信息,请非常感谢。这就是我所期待的,感谢它的帮助!
private Integer userid;
@NotEmpty(message = "Please enter your username.", groups={LoginGroup.class, RegistrationGroup.class})
private String username;
@NotEmpty(message = "Please enter your password.", groups={LoginGroup.class, RegistrationGroup.class})
private String userpw;
@NotEmpty(message = "Please enter your email.", groups={RegistrationGroup.class})
private String useremail;
@RequestMapping(value="/{registration_path}",method=RequestMethod.POST)
public String register(@Validated(RegistrationGroup.class) kisitablo kisitablo, BindingResult result.....) {
if (result.hasErrors()) {
return "login";
}
//Your logic.....
}