ActionContext是Action的上下文,Struts2自动在其中保存了一些在Action执行过程中所需的对象.简单来说,就是用来存放数据的。ActionContext本身的数据结构是映射结构,即一个Map,用key来映射value。所以使用者完全可以像使用Map一样来使用它,或者直接使用Action.getContextMap()方法来对Map进行操作。
一个简单例子:
Action HelloStrutsDemo.java
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class HelloStrutsDemo extends ActionSupport {
private Map session;
private Map request;
private Map application;
public HelloStrutsDemo(){
session=ActionContext.getContext().getSession();
request=(Map) ActionContext.getContext().get("session");
application=ActionContext.getContext().getApplication();
}
public String execute(){
session.put("sess","session1");
request.put("req", "request1");
application.put("app", "application1");
return "success";
}
success.jsp
<body>
<br />
<s:property value="#request.req"/>=<%=request.getAttribute("request") %><br>
<s:property value="#session.sess"/>=<%=request.getAttribute("session") %><br>
<s:property value="#application.app"/>=<%=request.getAttribute("application") %><br>
<s:debug></s:debug>
</body>