У меня есть простой класс Foo, говорящий так:
public class Foo {
@NotNull
private String bar;
public String getBar(){ return bar; }
public void setBar(String _bar){ this.bar = _bar; }
}
Теперь у меня есть метод REST контроллера, который принимает массив (или коллекцию) Foos, где я хочу убедиться, что у каждого Foo есть свойство, отличное от null bar.
Я думал, что использование аннотации @Valid поможет, но, похоже, это не так:
@Controller
public class MyController {
@RequestMapping(value="/foos", method=RequestMethod.POST)
public @ResponseBody String createFoos(@Valid @RequestBody Foo[] foos){
// blah blah blah
return "yeah";
}
}
Примечание: со списком также не работает. Но с уникальным Foo это работает!
Похоже, что проверка Spring не работает, когда у нас есть "несколько" объектов (в коллекции или массиве).
Я даже пытался реализовать HandlerMethodArgumentResolver с пользовательской аннотацией, но я не знаю, как определить «индексированные имена свойств» в BindingResult.
Если кто-то знает обходной путь для этой проблемы, он будет очень признателен! :)