SpringMVC 使用JSR-303进行校验Bean Validation------分组校验
2018-02-24 16:42
405 查看
如果同一个类,在不同的使用场景下有不同的校验规则,那么可以使用分组校验。未成年人是不能喝酒的,而在其他场景下我们不做特殊的限制,这个需求如何体现同一个实体,不同的校验规则呢?
改写注解,添加分组:
这表明只哟偶在Adult分组下,age最大值为120的校验才起作用。
在Other分组下邮箱才校验格式
下面编写Controller层
使用postMan发起请求,验证结果
改写注解,添加分组:
import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.hibernate.validator.constraints.Email; import javax.validation.constraints.Max; import javax.validation.constraints.NotNull; /** * 测试@Validate SpringMVC 使用JSR-303进行校验 * * @create 2018-02-23 18:05 **/ @Data @NoArgsConstructor @AllArgsConstructor @Builder public class User { @NotNull(message="名字不能为空") private String userName; @Max(value=120,message="年龄最大不能查过120",groups = {Adult.class}) private int age; @Email(message="邮箱格式错误",groups = {Other.class}) private String email; public interface Adult{}//分组 public interface Other{} }
这表明只哟偶在Adult分组下,age最大值为120的校验才起作用。
在Other分组下邮箱才校验格式
下面编写Controller层
@RequestMapping(value = "/adult",method = RequestMethod.POST) public Result groupValid(@RequestBody @Validated({User.Adult.class}) User user, BindingResult result){ if (result.hasErrors()){ List<ObjectError> errorList = result.getAllErrors(); for(ObjectError error : errorList){ System.out.println(error.getDefaultMessage()); return new Result<String>("1",error.getDefaultMessage(),null); } } System.out.println(user.getEmail()); return new Result<String>("0","success",null); } @RequestMapping(value = "/other",method = RequestMethod.POST) public Result groupOtherValid(@RequestBody @Validated({User.Other.class}) User user, BindingResult result){ if (result.hasErrors()){ List<ObjectError> errorList = result.getAllErrors(); for(ObjectError error : errorList){ System.out.println(error.getDefaultMessage()); return new Result<String>("1",error.getDefaultMessage(),null); } } System.out.println(user.getEmail()); return new Result<String>("0","success",null); }
使用postMan发起请求,验证结果
相关文章推荐
- SpringMVC 使用JSR-303进行校验 @Valid
- SpringMVC 使用JSR-303进行校验 @Valid
- SpringMVC 使用JSR-303进行校验 @Valid 学习(二)
- SpringMVC 使用JSR-303进行校验 @Valid
- SpringMVC 使用JSR-303进行校验 @Valid
- springmvc使用JSR-303进行校验
- SpringMVC 使用JSR-303进行校验 @Valid
- SpringMVC 使用JSR-303进行校验 @Valid
- SpringMVC 使用JSR-303进行校验Bean Validation------指定分组验证顺序
- SpringMVC 使用JSR-303进行校验 @Va 4000 lid
- SpringMVC 使用JSR-303进行校验 @Valid
- SpringMVC——使用JSR-303进行校验
- SpringMVC 使用JSR-303进行校验 @Valid
- SpringMVC 使用JSR-303进行校验
- SpringMVC 使用JSR-303进行校验 @Valid
- SpringMVC 使用JSR-303进行校验 @Valid
- SpringMVC 使用JSR-303进行校验 @Valid
- SpringMVC 使用JSR-303进行校验 @Valid
- SpringMVC 使用JSR-303进行校验 @Valid
- SpringMVC 使用 JSR-303 进行数据校验实例