У меня есть приложение Spring MVC, которое общается с интерфейсом с AJAX/JSON, и у меня есть в интерфейсе веб-приложение с HTML.Spring MVC 3 -> Validation
Для добавления элемента в базу данных, я делаю это в серверной системе:
@RequestMapping(value="add/", method=RequestMethod.POST)
public @ResponseBody SerializePerson addProject(@RequestBody Person person) {
Person p = this.personService.addPerson(person);
return new SerializePerson(p.getId(), p.getName(), p.getEmail());
}
Но теперь у меня есть проблема (это очень простой пример), что кто-то может создать проект без name, поэтому имя = "" и недействительный адрес электронной почты. Моя проблема в том, что я хочу проверить поля в бэкэнд-системе.
Так что я нашел витрину Spring MVC здесь: https://src.springsource.org/svn/spring-samples/mvc-showcase/src/main/java/org/springframework/samples/mvc/validation/
Они делают это:
@RequestMapping("/validate")
public @ResponseBody String validate(@Valid JavaBean bean, BindingResult result) {
if (result.hasErrors()) {
return "Object has validation errors";
} else {
return "No errors";
}
}
Итак, это лучший способ? Так что я должен сделать два шага:
- подтверждению объекта Person (если не возникнут никаких ошибок, перейдите к шагу 2, в противном случае выводит сообщение об ошибке для пользователя)
- написать объект Person к datbase
Невозможно ли объединить эти два шага за один шаг? И как я могу поместить объект POST Person из внешнего интерфейса в метод «проверки» в бэкэнд и посмотреть, какое поле выходит из строя (имя или адрес электронной почты), потому что говорить только «Объект имеет ошибки проверки» не так хорошо :-)?
С наилучшими пожеланиями.