Spring@Valid和@Validated有什么区别
                                            这篇文章主要为大家展示了Spring @Valid和@Validated有什么区别,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。

原州网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联建站从2013年开始到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站。
两者区别
| @Valid | @Validated | |
|---|---|---|
| 标准 | 标准JSR-303规范 | 增强JSR-303规范 | 
| 包 | javax.validation | org.springframework.validation | 
| 验证结果 | BindingResult result | BindingResult result | 
| 分组支持 | 不支持 | 支持 | 
| 分组序列 | 不支持 | 支持 | 
| 类型注解 | ? | 支持 | 
| 方法注解 | 支持 | 支持 | 
| 方法参数注解 | 支持 | 支持 | 
| 构造函数注解 | 支持 | ? | 
| 成员属性注解 | 支持 | 不支持 | 
| 嵌套验证 | 支持 | 不支持 | 
分组示例
public interface First{}
public interface Second{}
public class User {
	// 所有都验证
	@NotNull(message = "...")
	private int id;
 	// First 才验证
	@NotNull(message = "...", groups = { First.class })
	private String username;
 
 	// First 或 Second 才验证
	@NotNull(message = "...", groups = { First.class, Second.class })
	private String content;
	
	// First 验证 NotEmpty,Second 验证 Size
	@NotEmpty(message = "...", groups = { First.class })
	@Size(message = "...", min = 3, max = 8, groups = { Second.class })
	private String height;
}
// 只验证 Second 分组和没有分组的属性
public String save(@Validated( { Second.class }) User user, BindingResult result) {
	if (result.hasErrors()) {
		return "validate/error";
	}
	return "redirect:/success";
}分组序列
public interface GroupA {}
 
public interface GroupB {}
 
@GroupSequence( { GroupA.class, GroupB.class })
public interface Group {}public @ResponseBody String save(@Validated({ Group.class }) User user, BindingResult result) {
	if(result.hasErrors()) {
		return false;
	}
	return true;
}嵌套验证
public class Item {
  @NotNull(message = "id不能为空")
  @Min(value = 1, message = "id必须为正整数")
  private Long id;
	@Valid
  @NotNull(message = "props不能为空")
  @Size(min = 1, message = "至少要有一个属性")
  private List props;
} public class Prop {
  @NotNull(message = "pid不能为空")
  @Min(value = 1, message = "pid必须为正整数")
  private Long pid;
  @NotNull(message = "vid不能为空")
  @Min(value = 1, message = "vid必须为正整数")
  private Long vid;
  @NotBlank(message = "pidName不能为空")
  private String pidName;
  @NotBlank(message = "vidName不能为空")
  private String vidName;
}@RestController
public class ItemController {
  @RequestMapping("/item/add")
  public void addItem(@Validated Item item, BindingResult bindingResult) {
    doSomething();
  }
}验证多个对象
@Controller 
public class PeopleController { 
  @RequestMapping("/add") 
  public @ResponseBody String add(@Validated People pp, BindingResult result1, @Validated Person ps, BindingResult result2) 
  { 
    if(result1.hasErrors()) 
    { 
      return false; 
    } 
    if(result2.hasErrors()) 
    { 
      return false; 
    } 
    return true; 
  } 
}以上就是关于Spring @Valid和@Validated有什么区别的内容,如果你们有学习到知识或者技能,可以把它分享出去让更多的人看到。
当前题目:Spring@Valid和@Validated有什么区别
标题来源:http://www.cqwzjz.cn/article/pojppe.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 