Вопрос по struts2, java – Передача параметров в URL при перенаправлении в Struts2 [дубликат]

3

Possible Duplicate:
Strut2 - Get Property value in next Action

Я пытаюсь добиться следующего с помощью 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   ответа
0

кажется, что вы просто хотите завершить действие в JSP, поэтому я не понимаю, почему вы пытаетесь сделать это, используяredireciton тип. Я рекомендую использовать тип перенаправления по умолчанию: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;
}

Посмотрите натипы результатов имеется в наличии.

Причина, по которой я делаю перенаправление, заключается в том, что действие в основном изменяет базу данных, чтобы предотвратить случайное изменение данных пользователем снова, выполнив команду REFRESH. Я перенаправляю вместо пересылки MistyD
2
<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>

Аналогичный пост

Попробовал этот метод, и пример, который вы опубликовали, предполагает, что целевой пункт назначения - это действие, а целевой - jsp. MistyD
Посмотрите на ответ ясно. По той же причине я объявил отдельное отображение действийPay вPay.jsp, Также убедитесь, что тип результатаredirectAction неredirect
Хотя я разобрался с решением (спасибо вам за помощь). Я определенно дам этому еще один шанс. еще раз спасибо MistyD
8

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

где установщики и получатели сообщений определены в действии

0

<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

Этот метод работает только при пересылке с использованием диспетчера по умолчанию MistyD
В моем случае я перенаправляю MistyD
Попробовал это .. до сих пор нет прогресса. MistyD

Похожие вопросы