我需要在Struts2拦截器(不是动作类)中设置ServletRequest
属性。 ActionContext
是否像会话属性那样公开Map<String, Object>
来控制请求属性?
我看到ActionContext
实现了一个映射... ActionContext
本身是请求属性的包装器吗?
最佳答案
ActionContext
包含用于保存请求对象的请求密钥。要回答您的问题:ActionContext
不是请求的包装,但是Struts2中的请求是servlet请求的包装。
您可以从操作上下文中获取request
HttpServletRequest request = ServletActionContext.getRequest();
这种方法在拦截器中很有用,但在实际操作中更好地实现
ServletRequestAware
protected HttpServletRequest request;
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}