gpt4 book ai didi

java - Struts 2 消息存储拦截器消除无重定向时的错误

转载 作者:行者123 更新时间:2023-12-01 04:13:39 26 4
gpt4 key购买 nike

我在使用 Struts 2 中的消息存储拦截器时遇到问题。我在 struts.xml 文件中进行了以下操作:

<action name="rfi" method="add" class="org.test.action.RfiAction">
<interceptor-ref name="store">
<param name="operationMode">AUTOMATIC</param>
</interceptor-ref>
<interceptor-ref name="defaultStack" />
<result name="error">../display/irrt/rfi.jsp</result>
<result name="input">../display/irrt/rfi.jsp</result>
<result name="success" type="redirectAction">
<param name="actionName">rfis</param>
<param name="namespace">/irrt</param>
</result>
</action>

当操作成功返回时,它会重定向到列出的操作,并且拦截器会正确保存和检索成功消息。

但是,当发生错误时,没有重定向,它会转到列出的 JSP 页面,但错误不会显示(所有其他数据都会显示)。这就像 MessageStoreInterceptor 在运行时会清除错误变量的内容,这样如果没有发生重定向,当前操作就不再有错误消息。

当拦截器设置为 STORE 或 AUTOMATIC 模式时,会发生这种情况(即使拦截器在 AUTOMATIC 模式下甚至不应该运行,并且结果不包含重定向)。

我的代码只添加错误或消息。它永远不会删除它们。操作代码如下:

private String add()
{
try
{
// add the rfi entry
this.rfiService.addRfi(this.rfiEntry, this.getLoggedInUser());
}
catch(ConnectionException e)
{
this.addActionError("Could not add RFI entry.");
e.printStackTrace();

return ERROR;
}

// set success message
this.addActionMessage("RFI entry added.");

return SUCCESS;
}

这是 JSP 中用于显示消息的代码:

<s:if test="hasActionErrors() == true">
<s:iterator value="actionErrors">
<p class="text"><b><font color="red"><s:property /></font></b></p>
</s:iterator>
</s:if>
<s:elseif test="hasActionMessages() == true">
<s:iterator value="actionMessages">
<p class="text"><b><font color="green"><s:property /></font></b></p>
</s:iterator>
</s:elseif>

任何有关此问题的帮助将不胜感激。

最佳答案

<result name="success" type="redirectAction">
<param name="actionName">rfis</param>
<param name="namespace">/irrt</param>
</result>

redirectAction rfis 也应该通过 store 拦截器。

<action name="rfis" class="..." method="...">
<interceptor-ref name="store">
<param name="operationMode">AUTOMATIC</param>
</interceptor-ref>
<interceptor-ref name="defaultStack" />
<result ..../>
</action>

关于java - Struts 2 消息存储拦截器消除无重定向时的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19647739/

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