gpt4 book ai didi

java - 在Struts2的这种情况下如何避免 "chain"?

转载 作者:行者123 更新时间:2023-11-29 05:57:57 27 4
gpt4 key购买 nike

我有一个 Action,叫做 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 恢复数据(但我仍然不知道如何恢复用户在输入中引入的先前数据)。但这是我试图避免的解决方案,因为我读到使用链不是一个好主意。

那么,在这种情况下,如何在不丢失任何数据且不使用链的情况下添加一些验证?

最佳答案

您的一个选择是针对您从之前的同名操作中恢复的每个数据声明隐藏变量。第二种选择,如果你想使用 Chain 那么你可以在 struts.xml 文件中使用重定向并通过 struts.xml 本身发送你恢复的数据,例如:

   <action name="ShowData" class="foo">
<result>foo.jsp</result>
<result name="redirect" type="redirect">
<![CDATA[paxAcctCharge.do?value1=${value1}&value2=${value2}]]>
</result>
</action>

希望这会有所帮助。

关于java - 在Struts2的这种情况下如何避免 "chain"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11325339/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com