Jakarta ee 将请求链接到另一个命名空间上的struts操作
在我的struts应用程序中,我有两个名为“a”和“b”的名称空间,并为每个名称空间定义了操作“process” 现在,在某些情况下,我必须将请求从命名空间“a”中的操作“process”链接到命名空间“b”中的操作“process”。但是,我不知道如何在struts.xml中实现这一点。如何将这些请求链接到另一个命名空间 我的struts配置如下所示:Jakarta ee 将请求链接到另一个命名空间上的struts操作,jakarta-ee,struts2,struts,struts-config,Jakarta Ee,Struts2,Struts,Struts Config,在我的struts应用程序中,我有两个名为“a”和“b”的名称空间,并为每个名称空间定义了操作“process” 现在,在某些情况下,我必须将请求从命名空间“a”中的操作“process”链接到命名空间“b”中的操作“process”。但是,我不知道如何在struts.xml中实现这一点。如何将这些请求链接到另一个命名空间 我的struts配置如下所示: <package name="testa" extends="struts-default, json-default" namespa
<package name="testa" extends="struts-default, json-default" namespace="/a">
<action name="process" class="com.khoinguyen.action.ProcessAction" method="handleResponseA">
<result type="chain" name="return_b">
<param name="actionName">b/process</param>
</result>
<result name="success">completea.jsp</result>
</action>
</package>
<package name="testb" extends="struts-default, json-default" namespace="/b">
<action name="process" class="com.khoinguyen.action.ProcessAction" method="handleResponseB">
<result name="success">completeb.jsp</result>
</action>
</package>
b/过程
completea.jsp
completeb.jsp
使用
内部链
键入结果。您可以在结果中查看有关此类型的官方文档,以查看有关它的更多信息
就你而言:
<package name="testa" extends="struts-default, json-default" namespace="/a">
<action name="process" class="com.khoinguyen.action.ProcessAction" method="handleResponseA">
<result type="chain" name="return_b">
<param name="namespace">/b</param>
<param name="actionName">process</param>
</result>
<result name="success">completea.jsp</result>
</action>
</package>
/b
过程
completea.jsp
请使用resulttype=“redirectAction”
而不是resulttype=“chain”
它符合您的建议,但是在方法handleResponseB中,对应于链接后的操作,我无法通过方法ServletActionContext.getActionMapping().getNamespace()获取命名空间代码>它总是返回“/”,而期望值是“/b”of@KhoiNguyen我以前遇到过这个问题。尝试以下操作:使用ServletActionContext.getActionMapping().getName()
检查命名空间的名称是否在操作名称内。名称始终返回“process”值,因为它的操作名称相同,只是命名空间不同