访问或添加request/session/application属性:
java中:
public String scope() throws Exception(){
ActionContext cxt = ActionContext.getContext();
cxt.getApplication.put("app","运用范围");//往servletContext中放入app
cxt.getSession.put("ses","会话范围");//往session中放入ses
cxt.put("req","request范围");//往request中放入req
return "scope";
}
jsp中:
<body>
${applicationScope.app}<br/>
${sessionScope.ses}<br/>
${requestScope.req}<br/>
</body>
获取httpServletRequest/HttpSession/ServletContext/HttpServletResponse对象:
方法一:通过ServletActionContext类之间获取:
public String rsa() throw Exception(){
HttpServletRequest request = ServletActionContext.getRequest();
ServletContext servletContext = ServletActionContext.getServeltContext();
request.getSession();
HttpServletResponse response = ServletActionContext.getResponse();
return "scope";
}
方法二:实现指定接口,由struts2框架运行时注入:
public class HelloWorldAction implements ServletRequestAware,ServletResponseAware,ServletContextAware(){
private HttpServletRequest request;
private ServletContext servletContext;
private HttpServletResponse response;
public void setHttpServletRequest(HttpServletRequest req){
this.request = req;
}
public void setHttpServletResponse(HttpServletResponse res){
this.response = res;
}
public void setServletContext(ServletContext ser){
this.servletContext = ser;
}
}
例如:
package cn.gz.action;
import java.util.Arrays;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
public class HelloWorldAction {
public String execute(){
ActionContext ctx = ActionContext.getContext();
ctx.getApplication().put("app", "应用范围");//往ServletContext里放入app
ctx.getSession().put("ses", "session范围");//往session里放入ses
ctx.put("req", "request范围");//往request里放入req
ctx.put("names", Arrays.asList("老张", "老黎", "老方"));
return "message";
}
public String rsa() throws Exception{
HttpServletRequest request = ServletActionContext.getRequest();
ServletContext servletContext = ServletActionContext.getServletContext();
request.setAttribute("req", "请求范围属性");
request.getSession().setAttribute("ses", "会话范围属性");
servletContext.setAttribute("app", "应用范围属性");
//HttpServletResponse response = ServletActionContext.getResponse();
return "message";
}
}
jsp:
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>struts2</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>
<body>
${applicationScope.app} <br>
${sessionScope.ses}<br>
${requestScope.req}<br>
==============================<br/>
<c:forEach items="${names}" var="name">
${name }<br/>
</c:forEach>
</body>
</html>