如何同时调用2个不同的动作/从Struts 2中的JSP页面访问它们?

时间:2015-06-26 17:52:28

标签: jsp struts2 scope action

我正在开发一个Struts2应用程序。为了删除重复的代码,我想在两个不同的JSP页面中访问一个Action(让我们称之为A)(让我们说page_1.jsp和{{1 }})。到现在为止还挺好。问题是,在这两个JSP页面中的每个页面中,我还需要同时访问其他操作:page_2.jspB

总结: C需要访问操作page_1.jspA,而B需要访问操作page_2.jspA。我怎么会这样?据我所知,在C中使用type = "redirectAction"不会起作用,因为它只重定向动作,因此JSP页面只能访问最后一个被调用的动作。

示例:

struts.xml

据我所知,在上面的示例中,<action name="A" class="package.action.A" method="execute"> <result name="success" type="redirectAction">B</result> </action> <action name="B" class="package.action.B" method="execute"> <result name="success">page_1.jsp</result> </action> 只能访问操作page_1.jsp,对吗?

修改

事实上,课程B的名称为A - 我需要在操作CreateArchitecturesActionB上访问它,以便填充类似的C两者都标记。代码就像这样简单:

<s:radio>

1 个答案:

答案 0 :(得分:1)

只能从JSP访问一个操作,但是在调度页面后,您可以访问JSP中可用的任何范围。所以这个流程

<action name="A" class="package.action.A" method="execute">
    <result name="success" type="dispatcher">B</result>
</action>

<action name="B" class="package.action.B" method="execute">
    <result name="success">page_1.jsp</result>
</action> 

如果您更改请求范围的操作范围,则可以访问操作B