在我的struts execute方法中,我通过request.getParameter()从UI中获得一个值。在execute()内部,我想编辑requestParameter。
request.getParameter(“ STATE”),是否可以从Java端编辑STATE。
答案 0 :(得分:0)
您应该使用http://wiki.apache.org/hadoop/BindException 以此目的。您将原始请求从过滤器或Servlet传递给包装器,并覆盖所需的请求方法。对于应用程序的其余部分,您将传递经过修改的包装器对象而不是原始请求。
public class WrapperRequest extends HttpServletRequestWrapper {
public WrapperRequest (ServletRequest request) {
super((HttpServletRequest)request);
}
public String getParameter(String paramName) {
String value = super.getParameter(paramName);
if ("yourParamName".equals(paramName)) {
value = "yourValue";
}
return value;
}
public String[] getParameterValues(String paramName) {
//override here too
}
}
然后在您的过滤器或servlet中
WrapperRequest wrapperReq= new WrapperRequest(request);
chain.doFilter(wrapperReq,respone); //for filters, all resources in the request will see the new param value
requestDispatcher.forward(wrapperReq, response);//servlets, the forwarded resource will see the new param value