1
我有一個表單,其中提供了與更新整個表單分開的註釋。Struts2通過一個動作和多個jsp頁面進行驗證
讓我的JSP管理我用下面的Struts 2的動作:
<action name="maininfo" class="MainInfo">
<result name="success" type="tiles">maininfo</result>
<result name="addFundingComment" type="tiles">addFundingComment</result>
<result name="input" type="tiles">maininfo</result>
</action>
的maininfo
平鋪顯示主窗體JSP頁面。 addFundingComment
圖塊顯示提交評論的表單。
我的問題是,如果驗證失敗「輸入」的結果必須去無論是maininfo
tile
或addFundingComment
瓦,但我需要它去對應驗證失敗窗體的瓷磚。
我可以解決這個問題通過將在maininfo
JSP代碼addFundingComment
JSP代碼,並使用<s:if>
顯示我想要的形式,但我認爲有兩個獨立的JSP文件,使每一個更易於管理和調試。
我想使用一個操作,以便在用戶提交評論時更容易保持所有的maininfo
字段更改。
有沒有辦法讓action
與<results>
轉到不同的JSP頁面並且驗證失敗返回到相應的JSP頁面?
聽起來像是你混爲一談兩個不同的動作。最簡單的解決方法是在同一個動作中提交不同的方法。另一個微不足道的解決方案是包含一個標識表單的隱藏字段,或者根據表單數據存在的情況進行計算。 –
我確實在動作中使用了不同的方法。當他們點擊「添加評論」時,我提交返回「addFundingComment」的方法,該方法顯示「addFundingComment.jsp」頁面。當他們點擊「提交評論」時,我提交將評論存儲在數據庫中的方法,並返回顯示「maininfo.jsp」頁面的「成功」。我同意我可以在「maininfo.jsp」中隱藏評論表單,但我試圖使用兩個較小的jsp文件而不是一個巨大的文件。 – ponder275
我的意思是有兩個動作配置動作配置中指定的方法。然後你可以有單獨的「輸入」結果,並讓框架完成工作,而不必手動完成。 –