struts 配置文件这样配置
<action name="addBusLevel" class="businessAgentLevelAction" method="doAddLevel"> <result name="success" type="redirect">manBusLeve.action</result> </action> <action name="manBusLeve" class="businessAgentLevelAction" method="allBusinessAgentLevel"> <result name="success">WEB-INF/back/busAgentLevel/busLevList.jsp</result> </action>
action中有如下代码
public String doAddLevel() throws Exception { Map request = (Map)ActionContext.getContext().get("request"); try { this.businessAgentLevelBiz.saveBusinessAgentlevel(this.businessAgentLevel); request.put("addMsg", "添加成功!"); } catch (Exception e) { e.printStackTrace(); request.put("addMsg", "添加失败,请稍后再试!"); return SUCCESS; } return SUCCESS; }
当程序执行过这个添加的方法后 我想从busLevList.jsp 页中取得request 中的值
<result name="success" type="redirect">manBusLeve.action</result>
这样配置 经过转发 request中的值就丢失了
如果采用下面的配置 又报找不到 资源
<result name="success" type="dispatcher">manBusLeve.action</result>
……怎样能 ${addMsg} 取值 请大家帮忙
[code="java"]Map request = (Map)ActionContext.getContext().get("request");[/code]
恩,你是对的。我疏漏了。。。
[b]将转发方式改为chain试试:[/b]
[code="xml"]
manBusLeve.action
[/code]
[color=blue][b]
写错了,不带后缀名。方式为chain[/b][/color]
[code="java"]
manBusLeve
[/code]
[b]
用AJAX呀,异步传输![/b]
[quote]
[code="java"] Map request = (Map)ActionContext.getContext().get("request");[/code]
[/quote]
你的这一句存在问题!!
应该是 直接这样做:
[code="java"]
ActionContext.getContext().put("message", "hello WOrld");[/code]
[quote]
manBusLeve.action
说明 这种配置 不会报找不到资源
可以通过 就是取不到值 [/quote]
另外:dispatcher的result类型是,不是用来找Aciton的!
给你一个简单的案例:
[code="java"]
package xxx.action;
import com.opensymphony.xwork2.ActionContext;
public class HelloAction {
public String execute(){
ActionContext.getContext().put("message", "hello World");
return "OK";
}
}
[/code]
[code="java"]package xxx.action;
import com.opensymphony.xwork2.ActionContext;
public class RealAction {
String param ;
public String execute(){
param = (String)ActionContext.getContext().get("message");
System.out.println(param);
return "OK";
}
public void setParam(String param) {
this.param = param;
}
public String getParam() {
return param;
}
}[/code]
[code="xml"]
<action name="hello" class="xxx.action.HelloAction">
<result name="OK" type="chain">real</result>
</action>
<action name="real" class="xxx.action.RealAction">
<result name="OK">/chain.jsp</result>
</action>
</package>[/code]
[code="xml"]<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
输出: hello World