我正在将应用程序从struts1迁移到struts2。我这里有一个用例。 Struts1操作在URL中添加查询字符串,如下所示:
public String execute() throws Exception {
..... some code here.....
ActionForward inputForward = HttpRedirector.getRedirectToInput(request,
mapping, "id=" + request.getParameter("id") + "&" +
request.getQueryString(), filterForm);
return inputForward;
}
当它重定向到输入页面时,网址被修改为:
http://localhost:8084/struts2App/board.jsp的 ID = 1&安培;空
同样,我必须在我的struts2动作网址中添加查询字符串。目前,当我提交表单时,我的struts2操作URL看起来像这样:
本地主机:8084 / struts2App / board.action
我想修改它,就像在struts1中完成它一样:
http://localhost:8084/struts2App/board.action的 ID = 1&安培;空
这是struts2动作映射
<action name="board*" class="com.nextjet.web.hud.BoardAction">
<result name="success">/board.jsp</result>
<result name="input">/board.jsp</result>
</action>
有人可以告诉我如何实现它。
答案 0 :(得分:1)
您可以返回redirect
result:
<action name="board*" class="com.nextjet.web.hud.BoardAction">
<result name="success">/board.jsp</result>
<result name="input">/board.jsp</result>
<result name="redirect" type="redirectAction">
<param name="actionName"><![CDATA[${'board.action?'+ parameters}]]></param>
</result>
</action>
你应该有parameters
的吸气剂:
public String getParameters(){
return "id=" + request.getParameter("id") + "&" + request.getQueryString();
}