Struts2獲取request三種方法
struts2裏面有三種方法能夠獲取request,最好使用ServletRequestAware接口經過IOC機制注入Request對象。
在Action中獲取request方法一:
在Action中的代碼:
Map request = (Map)ActionContext.getContext().get("request");
List<Task> tasks = taskManager.findAll();
request.put("tasks", tasks);
在JSP頁面中獲取其中的值:
<s:iterator id="task" value="#request.tasks">
<tr class="table_header">
<td><s:property value="#task.tname"/></td>
<td><s:property value="#task.tuid"/></td>
<td><s:property value="#task.tstartTime"/></td>
<td><s:property value="#task.tendTime"/></td>
<td><s:property value="#task.tstate"/></td>
<td><input type="radio" id="choose" name="choose" onclick="getId(this.value)" value="<s:property value='#task.tid'/>"/></td>
</tr>
</s:iterator>
--------------------------------------------------------------------------------------------
方法二:經過ServletActionContext類來獲取,使用struts2經驗若是處理get傳參是中文,只能使用該方法進行處理亂碼問題
Action中代碼:
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("username", "zhangsan");
在jsp中獲取其中的值
<s:property value="#request.username">或者${requestScope.req}
--------------------------------------------------------------------------------------------
方法三:經過ServletRequestAware接口經過IOC機制注入Request對象
Action中的代碼:
Action實現ServletRequestAware接口,實現接口中的方法
private HttpServletRequest request;
//實現接口中的方法
public void setServletRequest(HttpServletRequest request){
this.request = request;
}
//而後在execute()方法中就能夠使用了
public String execute(){
request.setAttribute("username", "zhangsan");
request.getSession().getServletContext().getApplication(); //獲得Application
}
該方法必需要實現,並且該方法是自動被調用
這個方法在被調用的過程當中,會將建立好的request對象經過參數的方式傳遞給你,你能夠用來賦給你本類中的變量,而後request就能夠使用了
注意:setServletRequest()方法必定會再execute()方法被調用前執行
在jsp頁面中獲取其中的值
<s:property value="#request.task.tname"/>
/本篇文章來源於Java秀,原文出處:http://www.java.sh/article/jsp/1353.html
struts2超連接傳值: <s:a href="info.action?id=%{#list.id}"> <s:property value="#list.title"/></s:a>