JSR-303

935 阅读1分钟

JSR-303

JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation,Hibernate Validator 是 Bean Validation 的参考实现 . Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 的实现,除此之外还有一些附加的 constraint。

Bean Validation 中内置的 constraint

在这里插入图片描述

事例

实体类

public class User{  
  
    @NotNull  
    @Length(min = 1,max = 5)  
    private String name;  
      
   @Size(min=1,max=5)  
    private int pasWord  
}

控制器

@RequestMapping(value = "/create", method = RequestMethod.POST)  
    @ResponseBody  
    ResponseEntity createUser(@ModelAttribute @Valid User user, BindingResult result) {  
  
        if (result.hasErrors()) {               
            return ...;  
        }  
        return ...;  
   
      }

注:Hibernate Validate提供了JSR-303的实现,但是它仅支持Controller类方法的对象参数验证,不支持原始类型(String,int,char,boolean等)参数验证 。如需支持原始类型参数,请使用Spring Validator的@Validated注解。

@RestController
@RequestMapping("hello")
@Validated
public class HelloController{	
	
	@RequestMapping("get/{id}")
	public String getById(@PathVariable @Min(1) int id) {
		return "input id is " + id ;
	}

}