這是對我的問題Spring Web MVC - validate individual request params的後續。在哪裏驗證網絡應用程序中的數據(使用Spring)
我已經想出瞭如何在從我的輸入創建的域對象上調用Spring驗證器,以及如何讓該驗證器對我的類自己頒發JSR-303註釋。我無法弄清楚的部分是在我的代碼中執行此驗證的地方。顯而易見的方法是在控制器中執行此操作,並在驗證失敗時返回不同的模型和視圖。
但我也有一個服務層,它有時會從Web控制器以外的輸入源中創建/更新對象。所以很容易在那裏實現驗證,但我認爲報告失敗的唯一明顯方式是拋出異常。我看到Spring提供了BindException,但Javadoc也基本上說不在應用程序代碼中使用它。
這裏常見的/推薦的做法是什麼?
不夠公平。但在那種情況下,是否有一種乾淨的方式來報告失敗? – Dan 2011-06-06 15:07:51
向誰報告?網絡用戶?控制器這樣做。應用服務器?該服務應該在日誌或警報或其他內容中執行此操作。我假設這個異常不會傳播出控制器。 – duffymo 2011-06-06 15:59:52