2
我試圖得到一個Spring 3.0.2 WebMVC項目與新的註釋驗證支持運行。我有註解這樣一個Hibernate實體:Spring 3 MVC驗證BindingResult不包含任何錯誤
@Entity
@Table(name = "client")
public class Client implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@Column(name = "clientId", nullable = false)
@NotEmpty
private Integer clientId;
@Basic(optional = false)
@Column(name = "firstname", nullable = false, length = 45)
@NotEmpty
@Size(min=2, max=45)
private String firstname;
... more fields, getters and setters
}
我打開MVC註解支持我applicationContext.xml文件:
<mvc:annotation-driven />
而且我在我的控制器的方法來響應一個表單提交:
@RequestMapping(value="/addClient.htm")
public String addClient(@ModelAttribute("client") @Valid Client client, BindingResult result) {
if(result.hasErrors()) {
return "addClient";
}
service.storeClient(client);
return "clientResult";
}
在服務器中我的應用程序加載時,我可以在服務器日誌文件中看到,它加載驗證:
15 [http-8084-2] INFO org.hibernate.validator.util.Version - Hibernate Validator 4.0.2.GA
我遇到的問題是驗證程序似乎沒有啓動。我打開調試程序,當我進入控制器方法時,BindingResult在提交空表單後包含0個錯誤。 (BindingResult確實顯示它包含Client對象作爲目標。)然後它繼續插入沒有Id的記錄並引發異常。如果我填寫了一個Id,但將該名稱留空,它會創建一個帶有Id和空字段的記錄。
我錯過了哪些步驟來驗證工作?
謝謝,就是這樣。我仔細檢查了文檔,仍然找不到指定哪個文件應該進入的任何內容。 – Travelsized 2010-06-21 13:55:21