2012-03-24 83 views
2

我正在創建一個Java桌面應用程序,並想知道如何處理驗證。MVC項目結構驗證類(java)

我在控制器中收到包含註冊信息(用戶名,密碼......)的地圖。現在我想驗證地圖中的信息並顯示驗證中發生的所有錯誤。所以我想在一個名爲validation的新包中創建一個自定義類RegistrationValidation。然後讓這個類返回一個帶有錯誤的List。但我一直想知道...

我一直都知道驗證應該在正確的模型類中完成,正在根據MVC原則製作驗證類?

我應該從我的控制器或從我的模型中調用此驗證類?

我應該如何調用驗證類? (使方法靜態化,使其成爲一個單例,只是在控制器/模型或其他方面創建一個實例?)

有沒有更好的解決方案來提取驗證?

回答

0

好問題。如果你有地圖,你可以很容易地create java bean from it。這個java bean將會是你的模型,並且它將會有一些公開的方法,它將返回錯誤列表(錯誤的映射關鍵字作爲屬性名和錯誤信息也可能工作)。

當然,驗證的某些方面不能僅使用bean數據進行驗證(例如,如果驗證註冊頁面,您需要調用其他服務以確保用戶名未被採用)。在這種情況下,您可以將額外的參數傳遞給validate(服務等)。流程可能是下一步:在控制器中獲取數據,創建模型(java bean),在其上調用驗證,返回錯誤列表(如果有)以查看或轉發到下一個視圖。這是MVC應用程序非常典型的工作流程。

哦,不要讓任何東西變成靜態的,不要讓它變成單例。如果您通過控制器共享驗證,只需將驗證器注入其中。檢出spring framework。它可能對你有用。