我有一個使用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有驗證錯誤」不太好:-)?
最好的問候。