我有一个post方法接收一个对象作为参数,在这个对象中我有一个注释为@ValidDate和@NotEmpty的属性。
在另一种方法中,我想使用相同的对象,但我只想在属性上注释@ValidDate。
它有可能吗?
属性:
@NotEmpty
@ValidDate
private String installDate;
功能:
public String findLinksByCriteria(@Valid @ModelAttribute LinkForm link, BindingResult bindingResult, Model uiModel) {
if (bindingResult.hasErrors()) {
return ViewConstants.LINK_SEARCH_VIEW;
}
答案 0 :(得分:0)
可能是多种解决方案中的一种。您可以删除可选约束并手动执行,但是如果要将其严格保留在Bean Validation API的上下文中,则可以使用验证组执行此操作。
https://docs.oracle.com/cd/E19798-01/821-1841/gkahp/index.html
可以将约束添加到一个或多个组。约束组是 用于创建约束的子集,因此只有某些约束 将针对特定对象进行验证。默认情况下,所有约束 包含在默认约束组中。
通过使用Spring的@Validated
注释而不是@Valid
,您可以指定一组或多组约束,以应用于任何给定的案例。
这里有一个详细的例子:
http://blog.codeleak.pl/2014/08/validation-groups-in-spring-mvc.html