我正在将我的软件从 Strtus2 版本 2.0.11.1 升级到版本 2.3.15.3。链接在以前的版本中工作正常。但升级后,在以下情况下失败:
<action name="first_action" class="My_Same_Class">
<result name="success" type="chain">second_action</result>
<interceptor-ref name="servletConfig" />
<interceptor-ref name="staticParams"/>
<param name="A">37</param>
<param name="B">1</param>
<param name="C">0</param>
<param name="result">result1</param>
</action>
<action name="second_action" class="My_Same_Class">
<result name="success">/web/jsp/output.jsp</result>
<interceptor-ref name="servletConfig" />
<interceptor-ref name="staticParams"/>
<param name="A">38</param>
<param name="B">1</param>
<param name="C">0</param>
<param name="result">result2</param>
</action>
我在两个相继链接的操作中传递相同的类名。在output.jsp 上,它显示result1,但不显示result2。即使从日志中我也可以看到它只调用了“My_Action_Class”一次并且只获取了 result1。
根据堆栈溢出上的其他线程,我尝试用“redirectAction”替换链接,但在这种情况下这也无法按预期工作。
最佳答案
您可以为每个操作执行一种方法
<action name="first_action" class="My_Same_Class" method="firts">
<result name="success" type="chain">second_action</result>
<interceptor-ref name="servletConfig" />
<interceptor-ref name="staticParams"/>
<param name="A">37</param>
<param name="B">1</param>
<param name="C">0</param>
<param name="result">result1</param>
</action>
<action name="second_action" class="My_Same_Class" method="second">
<result name="success">/web/jsp/output.jsp</result>
<interceptor-ref name="servletConfig" />
<interceptor-ref name="staticParams"/>
<param name="A">38</param>
<param name="B">1</param>
<param name="C">0</param>
<param name="result">result2</param>
</action>
并在您的 My_Same_Class 中创建这些方法。
public String firts() throws Exception
{
//your code
return SUCCESS;
}
public String second() throws Exception
{
//your code
return SUCCESS;
}
关于java - Struts2 链接到同一类的同一方法的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21779007/