> To: dev@struts.apache.org > Subject: Re: MultiPartRequestWrapper > From: christoph.nenn...@lex-com.net > Date: Wed, 24 Feb 2016 16:27:11 +0100 > > > Hi, > > we are trying to migrate a big webapp (a thousand pages) from struts1 to > > struts2. > > One of the first step was to introduce the StrutsPreparefilter, leaving > > everything served by the ActionServlet. > > Then we removed the objects request and response from every action's > > methods signature, leaving them managed only in action ancestor class. > > Sounds like an intersting migration strategy. Can you tell us more about > it? > > > Talking about multipart request, we extended JakartaMultiPartRequest to > > override the parse method in order to leave request parsed by our code. > > Now we would like to leave request parse made by > JakartaMultiPartRequest, > > removing the override, but we need access to the fileitems uploaded by > > users. In other words, our action ancestor class needs to get access to > > the "files" properties of JakartaMultiPartRequest through the > > MultiPartRequestWrapper. Otherwise we need to code something similar to > > what is done by the FileUploadInterceptor.intercept and create againg > the > > fileitem needed by our application code. > > I would prefer to just use FileUploadInterceptor. > > > The request is: can you change the MultiPartRequestWrapper, and the > > JakartaMultiPartRequest, adding a public getFileItems(String) method? > > Please create jira for that. And specify if you would like to see it in > struts 2.3 series or if you are happy with struts 2.5. > > That method would be trivial to implement for JakartaMultiPartRequest, but > there are other implementations of MultiPartRequest which don't have easy > access to FileItems. So I'm not sure if this will be added. > >MG>if you want to get a head start take a look at DefaultFileItemFactory >located >@<BR>http://www.grepcode.com/file_/repo1.maven.org/maven2/commons-fileupload/commons-fileupload/1.3.1/org/apache/commons/fileupload/DefaultFileItemFactory.java/?v=source > > > Another question: in Dispatcher.wrapRequest there is no update of > request > > in context, so a ServletActionContext.getRequest() never return the > > MultiPartRequestWrapper (or StrutsRequestWrapper). Why? > > > When you look at FileUploadInterceptor.intercept you see that > MultiPartRequestWrapper is obtained from ActionContext. But I don't know > where it is set. > MG>MultiPartRequestWrapper is set in these files: <BR> MG>org.apache.struts2.dispatcher.Dispatcher.wrapRequest<BR>MG>org.apache.struts2.dispatcher.Dispatcher.cleanupRequest<BR>MG>org.apache.struts2.interceptor.FIleUploadInterceptor.intercept<BR> If you think it is a bug you can create another jira.
MG>suggest testing getFileItems(String) with FileUploadInterceptorTest.java located at<BR> /Struts/src/plugins/dojo/init/src/core/src/test/java/org/apache/struts2/interceptor/FileUploadInterceptorTest.java<BR> MG> /Struts/src/plugins/dojo>mvn test> > Regards, > Christoph > > This Email was scanned by Sophos Anti Virus