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

当只需要往三个范围内放入和取出数据时就可以使用ActionContext对象,而当需要得到ServletAPI时比如需要得到某个文件的绝对路径时就可以使用ServletActionContext




package blog.action;

import java.util.Arrays;
import java.util.Date;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionContext;

public class HelloWorld {
	
	private Date birthday;

	public Date getBirthday() {
		return birthday;
	}

	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

	public String execute(){
		ActionContext ctxt = ActionContext.getContext();
		ctxt.getApplication().put("app", "应用范围");
		ctxt.getSession().put("ses", "session范围");
		ctxt.put("req", "请求范围");		
		//放复合类型的数据
		ctxt.put("names", Arrays.asList("zhangsan","lisi","wangwu"));
		return "success";
	}
	
	public String add(){
		ServletContext sc = ServletActionContext.getServletContext();
		HttpServletRequest request = ServletActionContext.getRequest();
		request.setAttribute("request", "in request scope");
		request.getSession().setAttribute("session", "session scope");		
		sc.setAttribute("application", "application scope");		
		return "message";
	}
}

<form action="<%=request.getContextPath() %>/control/employee/add_add.action">  
   		<input type="submit" value="提交"><br/>
   		${applicationScope.app }<br/>
   		${sessionScope.ses }<br/>
   		${requestScope.req }<br/>
   		===============================<br/>
   		<c:forEach items="${names}" var="name">
   			${name }<br/>
   		</c:forEach>
   </form>




posted @ 2012-07-23 19:06  xzf007  阅读(162)  评论(0编辑  收藏  举报