@NotNull、@NotEmpty和@NotBlank的区别;常见的校验注解;@Validated跟@Valid注解的区别

@NotNull、@NotEmpty和@NotBlank的区别

@NotNull://CharSequence, Collection, Map 和 Array 对象不能是 null, 但可以是空集(size = 0)。
@NotEmpty://CharSequence, Collection, Map 和 Array 对象不能是 null 并且相关对象的 size 大于 0。
@NotBlank://String 不是 null 且去除两端空白字符后的长度(trimmed length)大于 0。

常见的校验注解:

@Null 限制只能为null
@NotNull 限制必须不为null
@AssertFalse 限制必须为false
@AssertTrue 限制必须为true
@DecimalMax(value) 限制必须为一个不大于指定值的数字
@DecimalMin(value) 限制必须为一个不小于指定值的数字
@Digits(integer,fraction)
限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction
@Future 限制必须是一个将来的日期
@Max(value) 限制必须为一个不大于指定值的数字
@Min(value) 限制必须为一个不小于指定值的数字
@Past 验证注解的元素值(日期类型)比当前时间早
@Pattern(value) 限制必须符合指定的正则表达式
@Size(max,min) 限制字符长度必须在min到max之间
@NotEmpty 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)
@NotBlank 验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格
@Email 验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式

@Validated跟@Valid注解的区别:

@Validated是spring的注解,而@Valid是javax的注解;

@Validated:用在方法入参上无法单独提供嵌套验证功能。不能用在成员属性(字段)上,也无法提示框架进行嵌套验证。能配合嵌套验证注解@Valid进行嵌套验证。
@Valid:用在方法入参上无法单独提供嵌套验证功能。能够用在成员属性(字段)上,提示验证框架进行嵌套验证。能配合嵌套验证注解@Valid进行嵌套验证。

附加:

@Validated和BindingResult bindingResult是配对出现,并且形参顺序是固定的(一前一后)。

展开阅读全文

spring3 mvc注解校验@NotNull不起作用

10-20

在学习spring mvc注解校验的时候发现@NotNull没有起作用!如uname.而password的@Size能行.哪位达达指导下,告诉我问题出在哪里!rn代码如下rn[code=Java]rnpackage com.zed.model;rnrnimport javax.validation.constraints.NotNull;rnimport javax.validation.constraints.Size;rnrnpublic class User rnrn rn @NotNull(message="用户名不能为空")rn private String uname;rn rn @Size(min=4,max=8, message="密码长度应为min-max位")rn private String password;rnrn public String getUname() rn return uname;rn rnrn public void setUname(String uname) rn this.uname = uname;rn rnrn public String getPassword() rn return password;rn rnrn public void setPassword(String password) rn this.password = password;rn rn rn rnrn[/code]rn控制器代码rn[code=Java]rnpackage com.zed.web;rnrnimport javax.validation.Valid;rnrnimport org.springframework.stereotype.Controller;rnimport org.springframework.validation.BindingResult;rnimport org.springframework.web.bind.annotation.RequestMapping;rnimport org.springframework.web.bind.annotation.RequestMethod;rnrnimport com.zed.model.User;rnrn@Controllerrnpublic class UserController rnrn @RequestMapping(value="/userLogin", method=RequestMethod.POST)rn public String userLogin(@Valid User user, BindingResult result) rn rn if(result.hasErrors()) rn return "home";rn else rn return "success";rn rn rnrn[/code]rnspring文件配置关键部分rn[code=XML]rnrnrnrnrnrn rn rnrn[/code]rn简单的表单rn[code=HTML]rn rn user namern rn passwordrn rn rn rn[/code] 论坛

没有更多推荐了,返回首页