我有一個動作,名爲ShowData
,它從數據庫中恢復數據並將其放入jsp中。如何在Struts2的這種情況下避免「鏈」?
struts.xml中
...
<action name="ShowData" class="foo">
<result>foo.jsp</result>
</action>
...
在foo.jsp頁面我有一個表格,並且我已經與ShowData
動作獲得的數據。
foo.jsp
...
<s:form action="DoSomething">
<s:input key="email" />
<s:submit/>
</s:form>
<s:iterator value="data_recovered_in_ShowData">
...
</s:iterator>
...
現在我想一些驗證添加到數據。如果DoSomething
的返回類型如下所示:<result name="input">foo.jsp</result>
我將丟失我在ShowData
操作中恢復的數據,但驗證完美起作用,並且用戶以前的輸入和錯誤將顯示在jsp頁面中。另一方面,我知道我可以使用chain
來做類似<result name="input" type="chain">ShowData</result>
的事情,然後使用MessageStoreInterceptor來恢復數據(但我仍然不知道如何恢復用戶已經引入的以前的數據輸入)。但是這是我試圖避免的解決方案,因爲我讀到使用鏈不是一個好主意。
那麼,如何在這種情況下添加一些驗證而不會丟失任何數據並且不使用鏈?
如果我這樣做,我失去了驗證,不是嗎? – Pigueiras
是的,你將失去對第一個動作的驗證,但仍然可以對第二個動作進行驗證,但我認爲這很好,我認爲如果你使用隱藏變量,它的值已經被驗證,現在你只需要驗證另一個值我認爲可以輕鬆完成的頁面.... –