在Struts2拦截器中更改请求参数值
有人知道在Struts2拦截器中是否可以更改/删除请求参数值吗?
request参数Map
是的实例,UnmodifiableMap
因此看起来好像无法在拦截器中进行操作。
我正在使用Liferay,所以uParamsMap
会UnmodifiableMap
public String intercept(ActionInvocation invocation) throws Exception { final ActionContext context = invocation.getInvocationContext();
PortletRequest request = (PortletRequest) context.get(REQUEST);
Map<String, String[]> uParamsMap = request.getParameterMap();
return invocation.invoke();
}
回答:
也许您可以这样尝试。
public String intercept(ActionInvocation invocation) throws Exception { final ActionContext context = invocation.getInvocationContext();
Map<String,Object> parameters = (Map<String,Object>)context.get(ActionContext.PARAMETERS);
Map<String, Object> parametersCopy = new HashMap<String, Object>();
parametersCopy.putAll(parameters);
parametersCopy.put("myParam", "changedValue");
context.put(ActionContext.PARAMETERS, parametersCopy);
return invocation.invoke();
}
以上是 在Struts2拦截器中更改请求参数值 的全部内容, 来源链接: utcz.com/qa/399314.html