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のセッターとゲッターはアクションで定義されます

于 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たとえば、ゲッター/セッターがで宣言されている変数値を渡したい場合は、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 に答える