`
Tin
  • 浏览: 138606 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

WebWork 2.2.2中文上传乱码问题[临时解决方案]

阅读更多
使用jakarta commons-upload。
升级到2.2.2后发现上传中文会乱码。
经过跟踪发现在com.opensymphony.webwork.dispatcher.DispatcherUtils的prepare(HttpServletRequest request, HttpServletResponse response)方法。
2.2.1->2.2.2时这个方法发生了非常的的变化。
2.2.1时: 
public void prepare(HttpServletRequest request, HttpServletResponse response) { 
        
if (encoding != null) { 
            
try { 
                request.setCharacterEncoding(encoding); 
            } 
catch (Exception e) { 
                LOG.error(
"Error setting character encoding to '" + encoding + "' - ignoring.", e); 
            } 
        } 

        
if (locale != null) { 
            response.setLocale(locale); 
        } 

        
if (paramsWorkaroundEnabled) { 
            request.getParameter(
"foo"); // simply read any parameter (existing or not) to "prime" the request 
        } 
    }

2.2.2时:
public void prepare(HttpServletRequest request, HttpServletResponse response) { 
        String encoding 
= null
        
if (Configuration.isSet(WebWorkConstants.WEBWORK_I18N_ENCODING)) { 
            encoding 
= Configuration.getString(WebWorkConstants.WEBWORK_I18N_ENCODING); 
        } 

        Locale locale 
= null
        
if (Configuration.isSet(WebWorkConstants.WEBWORK_LOCALE)) { 
            locale 
= LocalizedTextUtil.localeFromString(Configuration.getString(WebWorkConstants.WEBWORK_LOCALE), request.getLocale()); 
        } 

        
if (encoding != null && !MultiPartRequest.isMultiPart(request)) { 
            
try { 
                request.setCharacterEncoding(encoding); 
            } 
catch (Exception e) { 
                LOG.error(
"Error setting character encoding to '" + encoding + "' - ignoring.", e); 
            } 
        } 

        
if (locale != null) { 
            response.setLocale(locale); 
        } 

        
if (paramsWorkaroundEnabled) { 
            request.getParameter(
"foo"); // simply read any parameter (existing or not) to "prime" the request 
        } 
    }


我看了jira没有发现encoding != null && !MultiPartRequest.isMultiPart(request)这个判断的意义。但是它会造成对multiPartRequest的encoding判断失败,中文就会乱码。
所以临时的解决方案是将判断改成:
if (encoding != null)

听说WW的Jira已经不接受新issue了,不知是否真的? Crying or Very sad
分享到:
评论

相关推荐

    webwork-2.2.2和xwork1.1.3的jar包and源代码

    通过阅读源码,开发者可以了解框架内部的工作流程,遇到问题时能够更快定位和解决问题。同时,这也为自定义或扩展框架功能提供了可能。 总的来说,这个压缩包中的WebWork 2.2.2和XWork 1.1.3 JAR包及其源代码,为...

    BizFocus5.0-WebWork2.2.2技术培训

    是有关xwork培训的,BizFocus5.0是东方易维公司开发的一款优秀的中间件技术平台。

    WebWork2.2入门

    **WebWork 2.2 入门指南** WebWork 是一款基于 Java 的开源 Web 应用框架,它在 MVC(模型-视图-控制器)架构上构建,...在遇到问题时,查阅官方文档、社区论坛和博客文章(如给出的博文链接),都可以找到解决办法。

    webwork-2.2.2

    webwork的包。webwork开发者不可缺少的

    webwork-reference-2.2.2.pdf

    6. **集成性**:WebWork可以与其他技术栈如Struts、Spring、Hibernate等无缝集成,形成更强大的企业级解决方案。 ### 文档中的关键知识点 文档“webwork-reference-2.2.2.pdf”涵盖了WebWork框架的多个方面,下面...

    WebWork深入浅出

    10. 其他问题:如异步调用、国际化、文件上传和防重复提交等,WebWork都有相应的解决方案。 WebWork2.2.2的安装过程相对简单,主要包括下载WebWork2.2.2,搭建Web应用,将所需jar文件放入WEB-INF\lib目录,并在Web....

    webwork深入浅出学习资料

    10. **其他问题解决**:如异步调用、国际化支持、文件上传等,WebWork均提供了相应的解决方案。 ### WebWork入门与安装 搭建WebWork开发环境相对简单,主要包括以下步骤: 1. **下载WebWork框架**:从官方网站...

    webwork2.17中文使用手册

    webwork2.17中文使用手册

    webwork中文 webwork中文参考 webwork中文资料 webwork学习资料

    ### WebWork中文学习资料 #### WebWork框架概览 WebWork是一个由OpenSymphony组织开发的J2EE Web框架,其设计目标在于组件化和代码重用,采用MVC(Model-View-Controller)模式。WebWork框架的核心分为两部分:...

    webwork2中文教程

    通过阅读这份"webwork2中文教程",你可以快速上手并熟练掌握WebWork2的使用技巧,从而在开发过程中提高效率,降低出错率。 总的来说,WebWork2是一个强大的Web应用框架,它的设计思想和特性在后来的Struts2中得到了...

    webwork2中文参考

    webwork2中文参考

    webwork的上传和下载的Demo

    例如,你需要验证上传文件的大小和类型,防止恶意文件或过大文件导致服务器问题。同时,下载链接应该有限期,以避免未授权的访问。 6. **错误处理**:在上传或下载过程中可能会遇到各种错误,如文件过大、网络中断...

    webwork中上传文件

    在本例中,我们关注的是使用WebWork框架在Java环境中实现文件上传。WebWork是一个轻量级的MVC(Model-View-Controller)框架,它提供了处理HTTP请求和响应的强大工具,包括文件上传。 首先,我们需要了解WebWork的...

    webwork文件上传

    此外,确保在WebWork配置中正确配置了文件上传的限制,如最大文件大小和临时目录。这通常在`struts.properties`或相应的XML配置文件中完成。 总的来说,通过WebWork实现文件上传涉及HTML表单、Action类、文件验证...

    WebWork 文件上传

    在这个“WebWork 文件上传 多个文件上传 范例”中,我们将深入探讨如何使用WebWork实现多文件上传的功能。 首先,了解文件上传的基本原理是必要的。在HTTP协议中,文件上传通常通过POST请求实现,其中包含了...

    webwork中文参考手册

    在学习过程中,除了阅读手册,还建议动手实践,结合实际项目加深理解,以便更好地应用WebWork框架解决实际问题。此外,了解WebWork的进化历程和它如何与Struts2等其他框架融合也很有帮助,因为这能让你了解框架的...

    webwork2中文文档

    WebWork2中文文档是针对这个框架的一份详尽的中文参考资料,对于国内开发者来说,无疑是一个宝贵的资源。 文档可能涵盖了以下关键知识点: 1. **WebWork2基础**:介绍WebWork2的基本架构,包括Action、Interceptor...

    webwork电子书

    它可能涵盖了与"Webwork2 Guide"相似但翻译成中文的内容,帮助读者理解Webwork的各个方面,同时也可能包括一些中文社区的使用经验或特定问题的解决方案。 在阅读这两个文档时,你将了解到如何利用Webwork创建各种...

Global site tag (gtag.js) - Google Analytics