我需要在Struts2攔截器(不是操作類)中設置ServletRequest
屬性。 ActionContext
是否公開Map<String, Object>
來控制請求屬性,就像會話屬性一樣?從ActionContext獲取/設置ServletRequest屬性
我看到ActionContext
實現了一個map ... ActionContext
本身是一個請求屬性的包裝?
我需要在Struts2攔截器(不是操作類)中設置ServletRequest
屬性。 ActionContext
是否公開Map<String, Object>
來控制請求屬性,就像會話屬性一樣?從ActionContext獲取/設置ServletRequest屬性
我看到ActionContext
實現了一個map ... ActionContext
本身是一個請求屬性的包裝?
對於代碼不是一個動作裏面類(RequestAware
應該用於動作類),Struts2可以將Servlet請求屬性作爲Map公開。他們可以訪問:
Map request = (Map) ActionContext.getContext().get("request");
請參閱Strus2 documentation瞭解更多詳情。
ActionContext
包含保存請求對象的請求鍵。爲了回答你的問題:沒有ActionContext
不是請求的包裝,但是Struts2中的請求是servlet請求的包裝。
你可以從行動方面的request
像
HttpServletRequest request = ServletActionContext.getRequest();
這樣在攔截器有用的,但在行動中更好地執行ServletRequestAware
protected HttpServletRequest request;
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
我正在尋找請求**屬性**,而不是**參數** –
是的,查看已更新。 –
我將在下面回答:它顯示如何只獲取請求屬性映射(而不是整個servlet請求對象)。 –