request.getParameter需要编辑

时间:2019-01-31 09:52:08

标签: jsp servlets struts

在我的struts execute方法中,我通过request.getParameter()从UI中获得一个值。在execute()内部,我想编辑requestParameter。

request.getParameter(“ STATE”),是否可以从Java端编辑STATE。

1 个答案:

答案 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