Filter中的parseRequest()将ActionForm返回为空

时间:2017-06-08 07:10:08

标签: java filter struts-1 apache-commons-fileupload

我在我的Struts 1.2应用程序中添加了一个过滤器,该过滤器在请求发送到ActionForm之前被触发。我的jsp中有一个multipart / form-data,所以我使用apache.commons.FileUpload来解析请求,并使用ServletFileUpload类的parseRequest(HttpServletRequest)方法获取我的特定请求参数。

处理完成后,请求被传递给actionForm,表单中没有数据。我知道请求只能被解析一次,因为我已经在我的过滤器中解析了它,我没有在我的表单中获取数据。

即使在过滤器中解析请求后,是否有任何替代方式可以在表单中提供数据。

这是我在我的过滤器中使用的代码

List<FileItem> multiparts = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(servletRequest);
            for (FileItem item : multiparts) {

                if (item.isFormField()) {
                    String name = item.getFieldName();
                    stripXSS(item.getString());  
                }
            }

我尝试的其他代码是:

ServletFileUpload upload = new ServletFileUpload();
            FileItemIterator iterator = upload.getItemIterator(servletRequest);
            while(iterator.hasNext()){


                FileItemStream item = iterator.next();
                InputStream stream = item.openStream();
                if(item.isFormField()){
                    String name = item.getFieldName();
                    String value = Streams.asString(stream);             
                    stripXSS(item.getString());
                }
            }

但这也给出了同样的问题。

0 个答案:

没有答案