2015-02-19 2 views
0

У меня есть метод post, получающий объект как параметр, в этом объекте у меня есть атрибут с аннотациями @ValidDate и @NotEmpty.
в другом методе Я хочу использовать тот же объект, но я просто хочу аннотацию @ValidDate для атрибута. Возможно?Атрибут атрибута весны Java

атрибут:

@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

Таким образом, в ситуации 1 вы хотите 'installDate' быть' @ NotEmpty' в то время как в ситуации 2 может быть пустым? Я не могу с аннотациями. Я предлагаю удалить аннотацию '@ NotEmpty' и проверить, является ли' installDate' пустым или нет вручную, когда ситуация запрашивает его. – Tom

+0

@ Тома да, это именно то, что я хочу. Хорошо, я проверю это вручную. Спасибо за ответ –

ответ

0

Вероятно, одна из этих вещей с несколькими решениями. Вы можете удалить необязательное ограничение и сделать это вручную, однако, если вы хотите сохранить его строго в контексте API проверки Bean, вы можете сделать это с помощью групп проверки.

https://docs.oracle.com/cd/E19798-01/821-1841/gkahp/index.html

Ограничения могут быть добавлены к одной или нескольким группам. Группы ограничений: , используемые для создания подмножеств ограничений, поэтому только определенные ограничения будут проверены для конкретного объекта. По умолчанию все ограничения включены в группу ограничений по умолчанию.

С помощью @Validated аннотацию Spring, а не @Valid вы можете указать один или несколько групп ограничений, которые будут применяться для любого данного случая.

Существует подробный пример здесь:

http://blog.codeleak.pl/2014/08/validation-groups-in-spring-mvc.html

Смежные вопросы