Struts2獲取request三種方法

struts2裏面有三種方法能夠獲取request,最好使用ServletRequestAware接口經過IOC機制注入Request對象。apache

在Action中獲取request方法一:jsp

Action中的代碼:ide

Map request=(Map)ActionContext.getContext().get("request");ui

List<Task> Lasks = taskManager.findAll();this

request.put("tasks",tasks);對象

 

在JSP頁面中獲取其中的值:接口

<s:iteratorid="task"value="#request.tasks">get

<trclass="table_header">input

<td><s:propertyvalue="#task.tname"/></td>it

<td><s:propertyvalue="#task.tuid"/></td>

<td><s:propertyvalue="#task.tstartTime"/></td>

<td><s:propertyvalue="#task.tendTime"/></td>

<td><s:propertyvalue="#task.tstate"/></td>

<td><inputtype="radio"id="choose"name="choose"onclick="getId(this.value)"v

alue="<s:property value='#task.tid'/>"/></td>

</tr>

</s:iterator>

 

方法二:經過ServletActionContext類來獲取,使用struts2經驗若是處理get傳參是中文,只能使用該方法進行處理亂碼問題

Action中代碼:HttpServletRequest request = ServletActionContext.getRequest();

request.setAttribute("username","zhangsan");

在jsp中獲取其中的值

<s:propertyvalue="#request.username">或者${requestScope.req}

 

方法三:經過ServletRequestAware接口經過IOC機制注入Request對象

Action中的代碼:

Action實現ServletRequestAware接口,實現接口中的方法

privateHttpServletRequest request;

實現接口中的方法

publicvoidsetServletRequest(HttpServletRequest request){

this.request = request;

}

//而後在execute()方法中就能夠使用了

publicString execute(){

request.setAttribute("username",

"zhangsan");

request.getSession().getServletContext().getApplication();

//獲得Application

}

該方法必需要實現,並且該方法是自動被調用這個方法在被調用的過程當中,會將建立好的request對象經過參數的方式傳遞給你,你能夠用來賦給你本類中的變量,而後request就能夠使用了

注意:

setServletRequest()方法必定會再execute()方法被調用前執行在jsp頁面中獲取其中的值

1<s:propertyvalue="#request.task.tname"/>

在上面的代碼中,在Action實現了一個ServletRequestAware接口,而且實現了setServletRequest方法。

若是一個動做類實現了ServletRequestAware接口,Struts2在調用execute方法以前,就會先調用setServletRequest方法,並將Request參數傳入這個方法。若是想得到HttpServletResponse、HttpSession和Cookie等對象,動做類能夠分別實現ServletResponseAware、SessionAware和CookiesAware等接口。這些接口都在org.apache.struts2.interceptor包中。

struts2超連接傳值:<s:a href="info.action?id=%{#list.id}"><s:propertyvalue="#list.title"/></s:a>

相關文章
相關標籤/搜索