3

可能重复:
Strut2 - 在下一个操作中获取属性值

我正在尝试使用 Struts2 实现以下目标

response.sendRedirect("Pay.jsp?msg=transfer");

这就是我正在做的事情:

 <action name="AddPayAction" class="controller.AddPayAction">
            <param name="paraA"></param>
            <param name="paraB"></param>
            <param name="msg">SomeMessage</param>
            <result name="error">/Error.jsp</result>
            <result name="success" type="redirect">/Pay.jsp</result>
 </action>

为什么上述内容没有被重定向的任何建议:

      Pay.jsp?msg=SomeMessage
4

4 回答 4

9

到目前为止,对我有用的解决方案是

 <result name="success" type="redirect">
                <param name="location">/Pay.jsp?msg=${msg}</param>
 </result>

msg 的 setter 和 getter 在 action 中定义

于 2012-06-13T11:57:25.953 回答
3
<action name="AddPayAction" class="controller.AddPayAction">
      <result name="success" type="redirectAction">
        <param name="actionName">Pay</param>
        <param name="msg">SomeMessage</param>
      </result>
  </action>

  <action name="Pay">
      <result name="success">/Pay.jsp</result>
  </action>      

如果你想传递一个变量值,例如msg声明了它的getter/setter,AddPayAction那么使用这个

<param name="msg">${msg}</param>

一个类似的帖子

于 2012-06-13T05:57:20.077 回答
1

我认为应该是这样的:

<action name="AddPayAction" class="controller.AddPayAction">
    <result name="error">/Error.jsp</result>
    <result name="success" type="redirect">
        <param name="location">Pay.jsp</param>
        <param name="paraA"></param>
        <param name="paraB"></param>
        <param name="msg">SomeMessage</param>
    </result>
</action>

请参阅http://struts.apache.org/2.1.6/docs/redirect-result.html中的示例

于 2012-06-13T00:01:52.943 回答
1

查看您的代码,您似乎只想在 JSP 中结束操作,所以我不明白您为什么要尝试使用redirecitontype 来完成它。我建议使用默认重定向类型:dispatcher

<action name="AddPayAction" class="controller.AddPayAction">
    <result name="error">/Error.jsp</result>
    <result name="success">/Pay.jsp</result>
</action>

请注意,作为dispatcher默认类型,您不需要type="dispatcher"在结果中写入。因此,现在,如果您想在 JSP 中使用可用的变量,您只需在操作中使用其 get/set 方法声明这些变量。例如:

private String msg;

public String AddPayAction() {

    // your action code

    this.setMsg("my message");

    return SUCCESS;

}

public String getMsg() {

    return msg;
}

public void setMsg(String msg) {

    this.msg= msg;
}

查看可用的结果类型

于 2012-06-13T06:27:17.047 回答