web.xml文件1中相同。
1)HelloAction类中的代码:
public class HelloAction { public String execute() { ActionContext ctx = ActionContext.getContext(); // 仅仅只是访问和添加三个范围属性使用该方法 // ctx.getApplication().put("app", "application"); // ServletContext里放入app // ctx.getSession().put("ses", "session"); // 往Session里注入ses // ctx.put("req", "request"); // 往request中放入req // 要得到某站点目录下的文件的的绝对路径 HttpServletRequest request = ServletActionContext.getRequest(); ServletContext sevletContext = ServletActionContext.getServletContext(); request.setAttribute("req", "请求范围属性"); request.getSession().setAttribute("ses", "回话范围属性"); sevletContext.setAttribute("app", "应用范围属性"); // 也可以使用数组存储数据 ctx.put("names", Arrays.asList("zhao", "qian", "sun", "li")); return "success"; } }
2)index.jsp中的代码:
<body> <!-- 直接访问属性值 --> ${applicationScope.app } <br> ${sessionScope.ses } <br> ${request.req } <br> <!-- 使用taglib访问数组存储的属性 --> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <c:forEach items="${names }" var="name"> ${name }<br> </c:forEach> </body>
3)struts.xml文件的配置:
<struts> <package name="packageName" namespace="/test" extends="struts-default"> <action name="hello" class="test.HelloAction" method="execute"> <result name="success">/index.jsp</result> </action> </package> </struts>