ActionContext类有这个getContext()方法,怎么方法后面有有方法啊,这是什么逻辑?
public String execute() throws Exception{
Map request = (Map)ActionContext.getContext().get("request");
request.put("list", service.findAll());
return SUCCESS;
}
这里面的ActionContext.getContext().get("request")怎么解释?ActionContext类有这个getContext()方法,怎么方法后面有有方法啊,这是什么逻辑?
------解决方案--------------------struts2的request session 都封装在Map集合里,ActionContext.getContext().get("request")是指先得到上下文信息,在得到request对象 IOC有两种
------解决方案--------------------ActionContext.getContext()返回值是一个对象A 对象A.get("request")这是一个方法。
连起来写就是ActionContext.getContext().get("request");
------解决方案--------------------学习下
------解决方案--------------------Person{//"人"类
Mouth yourMouth = new Mouth();
void getMouth(){//得到嘴
return yourMouth;
}
}
Mouth(){//"嘴"类
void eat(){//“吃"方法
.....
}
}
Person p = new Person();
Mouth m = p.getMouth();//得到嘴巴这个对象m
m.eat();//执行对象“嘴巴”的方法eat
p.getMouth().eat();//上面两句合起来
------解决方案--------------------不好意思写错了。
1,Person类中的方法getMouth改为Mouth getMouth.此方法返回Mouth对象,不是void
2,Mouth类后面的括号去掉
------解决方案--------------------
正是。
context类中的get方法得到的又是一个对象。。这个对象就可以执行它的自己的方法,比如get("request");
------解决方案--------------------接分的来了
------解决方案--------------------看来LZ明白了
------解决方案--------------------
去查下api吧
------解决方案--------------------ActionContext.getContext()返回的是一个ActionContext对象,get(String key)也是ActionContext里面的一个方法。
xwork源码贴出来了:
public class ActionContext implements Serializable {
static ThreadLocal actionContext = new ThreadLocal();
//public static final String DEV_MODE = "__devMode";
public static final String ACTION_NAME = "com.opensymphony.xwork2.ActionContext.name";
public static final String VALUE_STACK = ValueStack.VALUE_STACK;
public static final String SESSION = "com.opensymphony.xwork2.ActionContext.session";
public static final String APPLICATION = "com.opensymphony.xwork2.ActionContext.application";
public static final String PARAMETERS = "com.opensymphony.xwork2.ActionContext.parameters";
public static final String LOCALE = "com.opensymphony.xwork2.ActionContext.locale";