如何将参数作为查询字符串添加到 Struts 2 中的重定向操作结果?

问题描述 投票:0回答:1

我正在将应用程序从 Struts 1 迁移到 Struts 2。我这里有一个用例。 Struts 1 操作在 URL 中添加一个查询字符串,如下所示:

 public String execute() throws Exception {
     ..... some code here.....
     ActionForward inputForward = HttpRedirector.getRedirectToInput(request,
     mapping, "id=" + request.getParameter("id") + "&" + 
     request.getQueryString(), filterForm);

     return inputForward;

 }

当它重定向到

input
页面时,URL将被修改为这样:

http://localhost:8084/struts2App/board.jsp?id=1&null

同样,我必须在 Struts 2 操作 URL 中添加查询字符串。目前,当我提交表单时,我的 Struts 2 操作 URL 如下所示:

localhost:8084/struts2App/board.action

我想修改它,就像在 Struts 1 中完成的那样:

http://localhost:8084/struts2App/board.action?id=1&null

这是 Struts 2 动作映射

    <action name="board*" class="com.nextjet.web.hud.BoardAction">
        <result name="success">/board.jsp</result>
        <result name="input">/board.jsp</result>
    </action>

有人可以告诉我如何实现它吗?

java jsp struts2 url-parameters actionresult
1个回答
1
投票

您可以返回

redirectAction
结果:

<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();
}
© www.soinside.com 2019 - 2024. All rights reserved.