我試圖確保當一個動作被調用時,給出了期望的參數(如顯示用戶配置文件我想確保參數包含用戶ID:viewUser.action?userId = 1 should工作很好,但viewUser.action應該重定向到一個錯誤頁面)struts2準備和驗證
所以我創建了一個驗證xml,指定userId字段不能爲空。一切正常。
但現在,在prepare()上,我使用userId做了一些前期工作。 事實上,在驗證攔截器之前調用準備攔截器,所以如果userId爲null,那麼我有一個很好的nullPointerException,並且不會調用驗證,因爲之前發生錯誤。 我知道我可以切換攔截器的順序,但我不想。
所以我的問題是: 我是否應該使用prepare()方法中的參數?有沒有其他方法可以解決這個問題?
感謝和抱歉,我的英語不好:(
所以我會有params => prepare => params =>驗證。但是如果idUser爲空,我仍然會在使用idUser時遇到問題。 – Estragon 2012-04-27 09:30:11
@Estragon你不能檢查它是否爲空?或者你使用它的業務邏輯沒有做任何理智檢查? – 2012-04-27 10:06:58
當然,我檢查所有的輸入,但我不相信準備是檢查的地方,驗證系統應該更好,手動檢查準備/業務功能...另外我真的不知道如何反應,如果參數爲null準備 – Estragon 2012-04-27 10:09:41