在學習struts的時候就一直知道ActionForm變量首字母要小寫。雖然知道,但是我還是習慣大寫,一直沒有出現問題。
最近在做一個練習項目的時候,ActionForm變量首字母依然是大寫。而且兩個jsp頁面共享一個ActionForm。在第一次向ActionForm填充數據的時候沒有出現任何問題,運行結果和期待結果相同。接著進入第二個jsp頁面,再次填充ActionForm的時候,沒有拋出異常,然而未取得期待結果。
在檢查的時候在Action中輸出從ActionForm取得的表單數據,結果全部為null。在多方求助無果的情況下,把ActionForm的變量全部改為小寫,再修改相關的內容,沒有問題了。
這個問題,如果有好的編碼習慣的話,這個問題就永遠不會出現。不過我想這個可能真的可以算是struts的瑕疵了(下面還有一個)。
ps:在使用<html:hidden>向ActionForm中提交long型數據的時候會拋出異常,這個時候改為<input type="hidden">就可以。