当前位置 : 主页 > 编程语言 > c++ >

SpringMVC的数据校验二:JSR规范

来源:互联网 收集:自由互联 发布时间:2021-07-03
JSR.text 数据校验主要针对于用户的误输入问题,目前主要有两种方法进行验证输入,一种是Spring自带的Validation校验框架,一种是JSR303(JAVA验证规范)实现校验功能。2.JSR303规范JSR规范主要
JSR.text
数据校验主要针对于用户的误输入问题,目前主要有两种方法进行验证输入,一种是Spring自带的Validation校验框架,
一种是JSR303(JAVA验证规范)实现校验功能。
2.JSR303规范
JSR规范主要是通过对JavaBean上的属性进行注解标识来进行验证。使用JSR303要导入Hibernate Validator的架包,包括
如下几个classmate-1.1.0.jar、hibernate-validator-5.2.4.Final.jar、hibernate-validator-annotation-processor-5.2.4.Final.jar、hibernate
hibernate-validator-cdi-5.2.4.Final.jar、jboss-logging-3.2.1.Final.jar、validation-api-1.1.0.Final.jar。
常用的注解如下:
@Null检查对象是否为空。@Null String des;
@AssertTrue验证Boolean对象是否为true @AssertTure Boolean isEmpty;
@Max(value)验证是否小于指定值 @Max(15) int age;
@Min(value)验证是否大于指定值 @Min(12) int age;
@Pattern 验证是否符合正则表达式

Hibernate Validator扩展的注解
@NotBlank 检查是否为空
@Email 检查Email地址是否合法
@Length(min,max)验证字符串长度是否符合指定范围
@Range(min,max,message) 验证属性范围是否在合适范围

JSR303例子:
JavaBean注解
public class People {
	@NotBlank(message="登录名不能为空")
	private String loginname;
	@NotBlank(message="密码不能为空")
	@Length(min=6,max=8,message="密码长度必须在6位到8位之间")
	private String password;
	@NotBlank(message="用户名不能为空")
	private String username;
	@Range(min=15,max=60,message="年龄必须在15到60之间")
	private int age;
	@Email(message="必须是合法的邮箱地址")
	private String email;
	@DateTimeFormat(pattern="yyyy-MM-dd")
	/*@Past(message="生日必须是过去的日期")*/
	private Date birthDate;

JSP页面

 
     
   
   
     
     登录名: 
     
       
     
       
     
     
     密码: 
     
       
     
       
     
     
     用户名: 
     
       
     
       
     
     
     年龄: 
     
       
     
       
     
     
     邮箱: 
     
       
     
       
     
     
     生日: 
     
       
     
       
     
     
     电话:  
      
   
  
	
 

控制器:
@RequestMapping(value="/people")
@Controller
public class PeopleController {
	private static final Log logger=LogFactory.getLog(PeopleController.class);
		
		@RequestMapping(value="/registerform",method=RequestMethod.GET)
		public String registerForm(Model model){
			People people=new People();
			model.addAttribute("people", people);
			return "registerform2";
		}
		//通过@Valid注解标识需要验证的Javebean,后面使用Errors对象保存信息
		@RequestMapping(value="/register",method=RequestMethod.POST)
		public String register(@Valid People people,Errors errors,Model model){
			logger.info(people);
			if(errors.hasFieldErrors()){
				return "registerform2";
			}else{
				model.addAttribute("people", people);
				return "welcome";
			}
		}
}
网友评论