У меня есть приложение Spring MVC, которое взаимодействует с веб-интерфейсом с помощью AJAX / JSON, и у меня есть веб-приложение с веб-приложением с HTML.
Для добавления элемента в базу данных я делаю это вбэкэнд-система:
@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 вбаза данных
Разве нельзя объединить эти два шага в один шаг?И как я могу поместить объект Person POST из внешнего интерфейса в метод «validate» в бэкэнде и посмотреть, какое поле не удалось (имя или адрес электронной почты), потому что говорить только «У объекта есть ошибки проверки» не так хорошо :-)?
С наилучшими пожеланиями.