我有一个动作,称为ShowData
从数据库中恢复数据并将其放入 jsp 中。
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 来恢复数据(但我仍然不知道如何恢复用户在输入中引入的先前数据)。但这是我试图避免的解决方案,因为我读到使用链不是一个好主意。
那么,在这种情况下,如何在不丢失任何数据且不使用链的情况下添加一些验证?