动作之间Struts2的参数
-
22-08-2019 - |
题
我不得不从一个动作传递一些参数到另一个动作,例如保持一个事件的跟踪。
什么是做到这一点的最好方法是什么?
我不会使用会话参数。感谢
解决方案
假设你是一个动作中服务器端和希望调用与某些参数的另一个动作。
可以使用s:动作标签援引另一动作,可能具有附加的/其他参数比原来的动作:
<s:action name="myAction" ignoreContextParams="true" executeResult="true">
<s:param name="foo" value="bar"/>
</s:action>
您也可以使用标准的struts-XML结果类型与参数:
<result name="success" type="redirect" >
<param name="location">foo.jsp?foo=${bar}</param>
<param name="parse">true</param>
<param name="encode">true</param>
</result>
如果你想有一个客户端重定向你必须发送一个网址回用正确的参数的客户端,也许还可以利用一些JavaScript去那里。
<s:url action="myAction" >
<s:param name="foo" value="bar"/>
</s:url>
其他提示
在支柱核心标签使用网址标签,样品如下:
<s:url var="idurl" action="EditEnterprise">
<s:param name="enterpriseId">
<s:property value="enterpriseId" />
</s:param>
</s:url>
<td>
<s:url id="url" action="Logging">
<s:param name="m_userNameInAction"><s:property value="m_userNameInForm"/></s:param>
</s:url>
<s:a href="%{url}">English</s:a>
</td>
其实你会从一个动作通过你的一个动作参数值到另一个动作。
简单地包括具有相同名称的豆变量。该参数你会收到关于行动(接收动作)。
<action name="ForwardAction" class="...">
<result name="success" type="chain">ReceiverAction</result>
</action>
ForwardAction参数将被转发到ReceiverAction。你可以使用它。 但包括在两个动作相同bean名称
如果你要接收的用户ID在receiveaction装置。,
这应该是在两个操作。,
private int userid;
public void setUserid(int id){
this.userid = userid;
}
public int getUserid(){
return userid;
}
实际上,范围和的ServletConfig拦截器可以以struts2的利用,以自动弹出动作上下文参数,(请求/会话等)
不隶属于 StackOverflow