我正在开发一个Struts2应用程序。为了删除重复的代码,我想在两个不同的JSP页面中访问一个Action(让我们称之为A
)(让我们说page_1.jsp
和{{1 }})。到现在为止还挺好。问题是,在这两个JSP页面中的每个页面中,我还需要同时访问其他操作:page_2.jsp
和B
。
总结: C
需要访问操作page_1.jsp
和A
,而B
需要访问操作page_2.jsp
和A
。我怎么会这样?据我所知,在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
- 我需要在操作CreateArchitecturesAction
和B
上访问它,以便填充类似的C
两者都标记。代码就像这样简单:
<s:radio>
答案 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
。