application,requset,session三个对象,这两种方法均操作的是同一个对象,只是调用方法不同,前后台都是共用同一个对象:
1、第一种,
在Action中:
ActionContext actionContext =ActionContext.getContext();
Map<String, Object> session = actionContext.getSession();
Map<String,Object> application = actionContext.getApplication();
Map<String,Object> request = (Map<String, Object>)actionContext.get("request");
Map<String,Object> attr = (Map<String,Object>)actionContext.get("attr");
Map<String,Object> parameters = actionContext.getParameters();
//用法
session.put("keyname",value);
session.get("keyname");
application.put("keyname",value);
application.get("keyname");
request.put("keyname",value);
request.get("keyname");
//在URL中传递参数用,等价于".....url?keyname=value"
parameters.put("keyname",value);
parameters.get("keyname");
//作用等同于session,application,request
attr.put("keyname",value);
attr.get("keyname");
在JSP中:以取session中的值为例
(1) <s:property value="#session.keyname"/><br>(此用法也适用于第二种方法)
(2)${ sessionScope.app} <br>(此处“session”后的“Scope”字符串必须有,表示session的范围)(此用法也适用于第二种方法)
(3)此种方法既可读取值,也可添加或修改值。
首先导入相应的包:
<%@ pageimport="com.opensymphony.xwork2.*" %>
读取:
<%=ActionContext.getContext().getApplication().get(“keyname”)%>
<%=(Map)ActionContext.getContext().get(“request”).get(“keyname”)%>
<%=ActionContext.getContext().getSession().get(“keyname”)%>
<%=(Map)ActionContext.getContext().get(“attr”).get(“keyname”)%>
在<% %>程序段中即可进行添加、修改、删除,修改时可以先删除再添加,如:
<%
(Map) ActionContext.getContext().get("request").remove("keyname");(Map)ActionContext.getContext().get("request").put("keyname",value)
%>
2、第二种,
在Action中:
HttpServletResponse response =ServletActionContext.getResponse();
HttpServletRequestrequest = ServletActionContext.getRequest();
HttpSessionsession = request.getSession();
此时的用法就是常用的用法了,在JSP页面中即可进行相应的读取和操作。