`
visualcatsharp
  • 浏览: 40092 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

webwork的多文件上传

    博客分类:
  • Java
阅读更多
        前天在做分类图标管理的时候,需要同时上传两个图标。但在处理的时候老报错,在google上找到有用的信息:

File upload support has been rebuilt to allow for multiple files with the same HTTP parameter name. Besides "cos" and "pell" support, "jakarta" support has been added, utilizing the Commons-FileUpload library. Only "jakarta" supports multiple files with the same HTTP parameter name. In future versions "jakarta" may become the default upload library, replacing "pell",作者还说将webwork.properties的webwork.multipart.parser设为com.opensymphony.webwork.dispatcher.multipart.JakartaMultiPartRequest就可以了。

         再看一下我们项目的webwork.properties,真是晕死,人家webwork已经调jakata设为默认上传组件了,我们的webwork.properties竟然还硬要设为pell,这不是蓄意谋杀么?

         当时图个爽快,按照这样仁兄的设置,果然成功了。今天早上回来看了一下webwork的代码,发现有点不对路。Webwork里的com.opensymphony.webwork.dispatcher.multipart.MultiPartRequestWrapper里面有几行代码,是判断使用那个上传组件的。以下是摘抄:

if (request instanceof MultiPartRequest) {

            multi = (MultiPartRequest) request;

  } else {

      String parser = Configuration.getString(WebWorkConstants.WEBWORK_MULTIPART_PARSER);



            // If it's not set, use Jakarta

            if (parser.equals("")) {

                log.warn("Property webwork.multipart.parser not set." +

                        " Using com.opensymphony.webwork.dispatcher.multipart.JakartaMultiPartRequest");

                parser = "com.opensymphony.webwork.dispatcher.multipart.JakartaMultiPartRequest";

            }

            // legacy support for old style property values

            else if (parser.equals("pell")) {

                parser = "com.opensymphony.webwork.dispatcher.multipart.PellMultiPartRequest";

            } else if (parser.equals("cos")) {

                parser = "com.opensymphony.webwork.dispatcher.multipart.CosMultiPartRequest";

            } else if (parser.equals("jakarta")) {

                parser = "com.opensymphony.webwork.dispatcher.multipart.JakartaMultiPartRequest";

            }

为什么将webwork.multipart.parser设为com.opensymphony.webwork.dispatcher.multipart.JakartaMultiPartRequest也是可以的?理论上应该设为jakata才对,除非在if子句中已经执行了,跳过了下面的else子句。
分享到:
评论
1 楼 elvishehai 2009-04-22  
呵呵,没看还真的不知道了啊,

相关推荐

Global site tag (gtag.js) - Google Analytics