
标签(空格分隔): springmvc验证分组
使用注解方式校验,
以下为bean的代码片段。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
@Table(name = "user1") @Component public class { @Id @Column(name = "uid1") @GeneratedValue private Integer uId; @NotEmpty(message = "请输入昵称", groups = {User.regist.class}) private String uName; @NotEmpty(message = "邮箱不能为空", groups = {User.login.class,User.regist.class}) @Email(message = "邮箱格式不正确", groups = {User.login.class,User.regist.class}) private String uEmail; @NotEmpty(message = "密码不能为空", groups = {User.login.class,User.regist.class}) @Length(min = 8, max = 16, message = "密码长度必须为8-16位", groups = {User.login.class,User.regist.class}) private String uPassword; ...省略get set 等方法 public interface login{}; public interface regist{};
|
如上:利用注解中的groups属性为该注解指定分组,我们在该bean中定义了两个内部接口作为分组。两个分组分别为:User.login.class,User.regist.class。
在controller中验证时,可以为需要验证的bean选择分组注解。
1 2 3 4 5 6 7 8 9 10 11 12 13
|
@RequestMapping(value = "/logging", method = RequestMethod.POST) public String login(@ModelAttribute("user") @Validated(User.login.class) User user, BindingResult result, Errors errors, HttpSession session) { 此处省略N行代码 ... } @RequestMapping(value = "/registing", method = RequestMethod.POST) public String regist(@ModelAttribute("user") @Validated(User.regist.class) User user, BindingResult result, @ModelAttribute("uQrpassword") String uQrpassword) { 此处省略N行代码 ... }
|
我们需要用到@Validated()注解来为参数添加验证,@Validated(User.login.class)则不仅为参数添加了验证,还指定了验证分组为User.login.class。当指定验证分组groups为 User.login.class 时,验证时只会验证groups属性包含User.login.class的注解。
近期评论