JSR 303校验

JSR 303中定义了一套可标注在成员变量,属性方法上的校验注解

  • @Null:验证对象是否为空
  • @NotNull:验证对象是否不为空,无法检查长度为0的字符串,用于验证基本数据类型
  • @AssertTure:验证Boolean对象是否为true
  • @AssertFalse:验证Boolean对象是否为false
  • @Max(value):验证Number和String对象是否小于等于指定的值
  • @Min(value):验证Number和String对象是否大于等于指定的值
  • @DecimalMax、@DecimalMin、@Digits、@Size、@Past、@Future、@Pattern

Hibernate Validator是JSR 303的一个参考实现,除了支持所有标准的校验还扩展了如下注解:
@NotBlank、@URL、@Email、@CreditCardNumber、@Length、@NotEmpty、@Range

示例

前端代码

    
登录名:
后端代码
public class User implements Serializable{
    @NotBlank(message="登录名不能为空")
    private String loginname;
}
@Controller
public class UserController{
    @RequestMapping(value="/{formname}")
    public String loginForm(
            @PathVariable String formName,
            Model model){
        User user = new User();
        model.Attribute("user", user);
        //动态跳转页面
        return formName;
    }

    //数据校验使用@Valid,后面跟着Errors对象保存校验信息,根据是否有错误决定跳转哪个页面
    @RequestMapping(value="login", method=RequestMethod.POST)
    public String login(
            @Valid @ModelAttribute User user,
            Errors errors,
            Model model){
        logger.info(user);
        if(errors.hasErrors()){
            return "registerForm";
        }
        model.addAttribute("user", user);
        return "success";
    }
}

你可能感兴趣的:(JSR 303校验)