转载请注明: TheViper http://www.cnblogs.com/TheViper基于JSR303注解校验问题的出现一个很常见的场景,对于一个model(pojo) User(属性有id,name,pwd密码,email),在登陆注册页面中,登陆校验和注册校验 ...
转载请注明: TheViper http://www.cnblogs.com/TheViper
基于JSR303注解校验
问题的出现
一个很常见的场景,对于一个model(pojo) User(属性有id,name,pwd密码,email),在登陆注册页面中,登陆校验和注册校验
1.需要校验的属性不同。登陆只需校验name和pwd就可以了,不像注册需要校验全部属性。
2.校验同一属性的目的不同。比如,注册的时候,需要校验name属性是否为空,还有长度是否符合要求;登陆的时候就只用校验是否为空就可以了。pwd同理。
3.由于校验的目的不同,相应的返回的信息也不同。
可以看到此时如果只是在model属性上单纯的用注解是无能为力的,好在spring mvc为我们提供了解决方法。
解决
先看下最终效果
下面从头到尾说下步骤:
1.下载spring framework,添加spring mvc必须的jar
例子里面没有用到数据库,所以少了很多jar.
2.添加org.json包,用于生成json格式字符串。当然也可以用其他可以生成json字符串的包。
3.添加hibernate-validator.jar,validation-api.jar,使spring mvc支持JSR303注解式的校验
4.添加commons-logging.jar,jboss-logging.jar。否则启动服务器出现错误。
5.添加classmate.jar,否则出现java.lang.ClassNotFoundException: com.faster
6.在model上添加校验注解,并为相应注解分组。比如
public class User { private int id; @NotEmpty(message="用户名不能为空",groups={LoginCheck.class,RegCheck.class}) @Size(min=3,max=12,message="登录名必须3-12位",groups={RegCheck.class}) private String name; @NotEmpty(message="密码不能为空",groups={LoginCheck.class,RegCheck.class}) @Size(min=6,max=16,message="密码必须6-16位",groups={RegCheck.class}) private String pwd; @NotEmpty(message="邮箱不能为空",groups={RegCheck.class}) @Email(message="不符合邮箱格式",groups={RegCheck.class}) private String email;}
原标题:spring mvc校验部分属性
关键词:Spring
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。