Struts2傳值的3種方式

之前在Servlet中有兩種傳值方式:java

第一種:經過獲得當前的Request對象,經過request.setAttribute(key,value)將值綁定到request中,經過轉發,就能在不一樣的Servlet或JSP中經過request.getAttribute(key)進行取值。apache

第二種:經過當前的request.getSession().setAttribute(key,value)將值綁定到當前會話中,只要會話存在,就是在任何的Servlet或jSP中經過request.getSession.getAttribute(key)取到值。session

如今在Struts2中的傳值方式:框架

第一種:經過實現org.apache.struts2.interceptor.ServletRequestAware這個接口,重寫它的setServletRequest(HttpServletRequest request)方法獲得Request。獲得request後傳值方式與上面的第一種方式同樣。code

第二種:經過對象

<!-- lang: java -->
ActionContext contx= ServletActionContext.getContext(); 
Map<String,Object> map=contx.getSession();

獲得一個Map,把值放用key,value形式放入Map中,至關於session.setAttribute(key,value)同樣。繼承

第三種:經過 ActionContext contx= ServletActionContext.getContext(); 獲得一個Struts2獨有的ActionContext,這是Struts2的上下文對象,只要是在Struts這個框架中均可以獲得,其功能相似於在多個頁面進行轉發的Request,也就是說多個JSP共享的同一個Request,用contx.put(key,value)這個方式對Struts2上下文進行賦值,在其餘的Action中只要獲得ActionContext 對象,用get(key)就能夠取值。接口

說明:ServletActionContext是繼承了ActionContext的子類, ActionContext contx= ServletActionContext.getContext(); 也能夠是ActionContext contx=ActionContext.getContext();.get

相關文章
相關標籤/搜索