你的位置:首页 > 软件开发 > Java > spring mvc校验部分属性

spring mvc校验部分属性

发布时间:2015-05-27 00:00:58
转载请注明: 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为我们提供了解决方法。

解决

先看下最终效果

spring mvc校验部分属性

下面从头到尾说下步骤:

1.下载spring framework,添加spring mvc必须的jar

spring mvc校验部分属性

例子里面没有用到数据库,所以少了很多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 (#换成@)。

可能感兴趣文章

我的浏览记录