webwork/src/main/webwork/multipart MultiPartRequestWrapper.java,1.1,1.2
[email protected] Mon, 15 Jul 2002 12:47:44 -0700
| Newsgroups | gmane.comp.java.webwork.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/webwork/webwork/src/main/webwork/multipart In directory usw-pr-cvs1:/tmp/cvs-serv10981 Modified Files: MultiPartRequestWrapper.java Log Message: updated to include parameters from previous requests - patch submitted by Christoph Kiehl [[email protected]] Index: MultiPartRequestWrapper.java =================================================================== RCS file: /cvsroot/webwork/webwork/src/main/webwork/multipart/MultiPartRequestWrapper.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- MultiPartRequestWrapper.java 18 May 2002 18:29:17 -0000 1.1 +++ MultiPartRequestWrapper.java 15 Jul 2002 19:47:41 -0000 1.2 @@ -20,6 +20,7 @@ import java.util.Enumeration; import java.util.HashMap; import java.util.Map; +import java.util.Vector; /** * <code>MultiPartRequestWrapper</code> will parse a multipart request and @@ -39,30 +40,34 @@ throws IOException { super(request); - String parser = Configuration.getString("webwork.multipart.parser"); - if ("cos".equals(parser)) { - multi = new CosMultiPartRequest(request, saveDir, maxSize.intValue()); - } else - if ("pell".equals(parser)) { - multi = new PellMultiPartRequest(request, saveDir, maxSize.intValue()); + if (request instanceof MultiPartRequest) { + multi = (MultiPartRequest)request; } else { - throw new IOException("Not multipart parse specified in webwork.properties."); + String parser = Configuration.getString("webwork.multipart.parser"); + if ("cos".equals(parser)) { + multi = new CosMultiPartRequest(request, saveDir, maxSize.intValue()); + } else + if ("pell".equals(parser)) { + multi = new PellMultiPartRequest(request, saveDir, maxSize.intValue()); + } else { + throw new IOException("Not multipart parse specified in webwork.properties."); + } } } public Enumeration getParameterNames() { - return multi.getParameterNames(); + return mergeParams(multi.getParameterNames(), super.getParameterNames()); } public String getParameter(String name) { - return multi.getParameter(name); + return (multi.getParameter(name)==null) ? super.getParameter(name) : multi.getParameter(name); } public String[] getParameterValues(String name) { - return multi.getParameterValues(name); + return (multi.getParameterValues(name)==null) ? super.getParameterValues(name) : multi.getParameterValues(name); } public Map getParameterMap() @@ -71,7 +76,7 @@ Enumeration enum = getParameterNames(); while (enum.hasMoreElements()) { String name = (String) enum.nextElement(); - map.put(name, multi.getParameterValues(name)); + map.put(name, this.getParameterValues(name)); } return map; } @@ -95,5 +100,15 @@ public File getFile(String name) { return multi.getFile(name); + } + + //private + protected Enumeration mergeParams(Enumeration params1, Enumeration params2) { + Vector temp = new Vector(); + while(params1.hasMoreElements()) + temp.add(params1.nextElement()); + while(params2.hasMoreElements()) + temp.add(params2.nextElement()); + return temp.elements(); } } ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf