2009-10-06 120 views
0

我們正在開發一個使用Spring MVC的應用程序。有一個頁面顯示用戶列表,其旁邊的複選框以及頁面底部的提交按鈕。控制器和驗證器的範圍

登錄的用戶可以選擇這些複選框並提交,目前控制器會檢查所選用戶列表是否爲空,並相應地執行操作。我們應該只帶一個驗證器來做這個檢查嗎?或者在控制器本身中執行它可以嗎?是否有任何文件說明控制器,驗證器應該做什麼,不應該做什麼?

回答

1

直到Spring 3.0發佈 - 沒有內置的模型驗證支持。你必須自己處理驗證 - 如下所示:

@RequestMapping 
public String post(@ModelAttribute MyModel myModel, BindingResult result){ 
    myValidator.validate(myModel, result); 
    if (result.hasErrors()) return "myView"; 
    ... 
} 

你可以做你喜歡的,它是你的代碼。但是按照慣例,控制器應該只關心指揮事物 - 驗證應該是在一個單獨的驗證器中。

+0

謝謝丹尼爾。我可以在代碼中看到明確調用適用於AbstractCommandController而不適用於SimpleFormController的validate方法。對於SimpleFormController,我們可以在bean聲明中啓用驗證器。 – novice 2009-10-07 03:25:57

+0

是的,你是絕對正確的;我一直在使用基於註釋的控制器,所以我忘記了那些擴展Spring控制器類的人。 – 2009-10-07 07:26:49