springmvc的参数校验

1、手动校验

 

if(user.getId()==null || StringUtils.isEmpty(user.getName())){
			return "ERROR:id/用户名为空";
		}

2、使用@RequestParam()注解来校验

使用注解校验,在controller中需要对传过来的参数进行校验。校验的格式:

       错误信息:Required Long parameter 'id' is not present
        原因:缺少参数 id

3、使用hibernate-validate

1)第一步:在maven项目中引入相应的jar包:

  


            org.hibernate
            hibernate-validator
            5.2.4.Final
         
		 
            javax.validation
            validation-api
            1.1.0.Final
         

 

在controller中使用@Valid修饰要校验的 实体类

public String test3(@Valid User user, BindingResult result){
	

重点掌握的注解是:@NotNull 不能为null 
                                  等价于 if(id != null){}

                                  @NotBlank(字符不能为空)
                                 等价于 if( name!=null && name.trim().length()>0 ){}


                                 @NotEmpty(数组/列表不能没有元素)
                                    等价于 if(list!=null && list.size()>0 ) {}


                                     @Min(18) >=18


                                    @Email(邮箱)


                                     @Pattern(regexp="",message="自定义错误信息") 正则表达式校验
                                     等修饰实体类属性 

 

 springmvc的参数校验_第1张图片

在controller中定义错误的信息:

@RequestMapping("/test3")
	@ResponseBody
	public String test3(@Valid User user, BindingResult result){
		if(result.hasErrors()){
			return getErrorMsg(result.getAllErrors());
		}
		return "OK";
	}
	
	public static String getErrorMsg(List errorList) {
		StringBuilder msg = new StringBuilder("");
		for(ObjectError e : errorList) {
			if(e instanceof FieldError) {
				FieldError fieldError = (FieldError)e;
				msg.append(fieldError.getField());
			}
			msg.append(e.getDefaultMessage()).append(",");
		}
		return msg.toString();
	}

 

你可能感兴趣的:(springmvc的参数校验)