我正在尝试使用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
答案 0 :(得分:9)
到目前为止,对我有用的解决方案是
<result name="success" type="redirect">
<param name="location">/Pay.jsp?msg=${msg}</param>
</result>
其中msg的setter和getter在action
中定义答案 1 :(得分: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>
答案 2 :(得分: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>
上的示例
答案 3 :(得分:1)
看一看你的代码,看起来你只想在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方法在action中声明这些变量。例如:
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;
}
查看可用的result types。