我有一个动作,名为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
是的,你将失去对第一个动作的验证,但仍然可以对第二个动作进行验证,但我认为这很好,我认为如果你使用隐藏变量,它的值已经被验证,现在你只需要验证另一个值我认为可以轻松完成的页面.... –