我有一个使用AJAX/JSON与前端进行通信的Spring MVC应用程序,并且我在前端有一个带有HTML的Web应用程序。Spring MVC 3 - >验证
对于添加元素到数据库中,我这样做是在后端系统:
@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());
}
但现在我有问题(这是一个非常简单的例子),有人可以在没有创建项目名称,所以名称=“”和一个非有效的电子邮件地址。 我的问题是,我想验证后端系统中的字段。
所以,我发现了一个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
难道不可能在一个步骤中结合这两个步骤吗?我怎样才能将Person POST对象从前端放到后端的“validate”方法中,并查看哪个字段失败(名称或电子邮件地址),因为只告诉“Object有验证错误”不太好:-)?
最好的问候。