2012-11-13 43 views
0

我剛開始使用我的第一個Struts 2項目,我目前正在使用註冊操作。Struts 2如何在動作中防止nullpointerexceptions與驗證

註冊時,您可以直接從URL訪問Register.action,當你這樣做的類變量不是實例(例如String password)是怎麼回事,除了罰款和使用它們時,我得到空指針的例外。 Register.action是處理register.jsp表單的操作。

有沒有辦法阻止用戶訪問Register.action而不是來自register.jsp? 或者我需要檢查一切嗎?

回答

1

首先,在使用MVC框架時,除了極少數情況下,您不應直接訪問JSP頁面:所有活動都應通過操作進行。其次,正如Aleksandr所說,驗證應該通過框架來處理,無論是通過XML,註釋還是基於Java的方法。在這種情況下,直接訪問處理操作應該導致驗證失敗,因爲需要用戶名/密碼字段。

一旦驗證失敗(取決於您的配置,但是例如),框架將轉發到"input"結果,可能是註冊JSP頁面。

+0

如何避免用戶直接訪問.jsp並導致異常?例如,如果我使用標記,那麼我需要先執行一個操作,否則我會得到一個異常。我如何避免這種情況? –

+0

@JohanS通常JSP頁面被置於'WEB-INF'中以避免直接訪問客戶端。 –

+0

@JohanS我不記得返回的是什麼,但他們沒有得到JSP頁面。 –