首页 > 代码库 > struts2_9_访问或添加request/session/application属性

struts2_9_访问或添加request/session/application属性

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>



struts2_9_访问或添加request/session/application属性