使用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了,不知是否真的?
分享到:
相关推荐
通过阅读源码,开发者可以了解框架内部的工作流程,遇到问题时能够更快定位和解决问题。同时,这也为自定义或扩展框架功能提供了可能。 总的来说,这个压缩包中的WebWork 2.2.2和XWork 1.1.3 JAR包及其源代码,为...
是有关xwork培训的,BizFocus5.0是东方易维公司开发的一款优秀的中间件技术平台。
**WebWork 2.2 入门指南** WebWork 是一款基于 Java 的开源 Web 应用框架,它在 MVC(模型-视图-控制器)架构上构建,...在遇到问题时,查阅官方文档、社区论坛和博客文章(如给出的博文链接),都可以找到解决办法。
webwork的包。webwork开发者不可缺少的
6. **集成性**:WebWork可以与其他技术栈如Struts、Spring、Hibernate等无缝集成,形成更强大的企业级解决方案。 ### 文档中的关键知识点 文档“webwork-reference-2.2.2.pdf”涵盖了WebWork框架的多个方面,下面...
10. 其他问题:如异步调用、国际化、文件上传和防重复提交等,WebWork都有相应的解决方案。 WebWork2.2.2的安装过程相对简单,主要包括下载WebWork2.2.2,搭建Web应用,将所需jar文件放入WEB-INF\lib目录,并在Web....
10. **其他问题解决**:如异步调用、国际化支持、文件上传等,WebWork均提供了相应的解决方案。 ### WebWork入门与安装 搭建WebWork开发环境相对简单,主要包括以下步骤: 1. **下载WebWork框架**:从官方网站...
webwork2.17中文使用手册
### WebWork中文学习资料 #### WebWork框架概览 WebWork是一个由OpenSymphony组织开发的J2EE Web框架,其设计目标在于组件化和代码重用,采用MVC(Model-View-Controller)模式。WebWork框架的核心分为两部分:...
通过阅读这份"webwork2中文教程",你可以快速上手并熟练掌握WebWork2的使用技巧,从而在开发过程中提高效率,降低出错率。 总的来说,WebWork2是一个强大的Web应用框架,它的设计思想和特性在后来的Struts2中得到了...
webwork2中文参考
例如,你需要验证上传文件的大小和类型,防止恶意文件或过大文件导致服务器问题。同时,下载链接应该有限期,以避免未授权的访问。 6. **错误处理**:在上传或下载过程中可能会遇到各种错误,如文件过大、网络中断...
在本例中,我们关注的是使用WebWork框架在Java环境中实现文件上传。WebWork是一个轻量级的MVC(Model-View-Controller)框架,它提供了处理HTTP请求和响应的强大工具,包括文件上传。 首先,我们需要了解WebWork的...
此外,确保在WebWork配置中正确配置了文件上传的限制,如最大文件大小和临时目录。这通常在`struts.properties`或相应的XML配置文件中完成。 总的来说,通过WebWork实现文件上传涉及HTML表单、Action类、文件验证...
在这个“WebWork 文件上传 多个文件上传 范例”中,我们将深入探讨如何使用WebWork实现多文件上传的功能。 首先,了解文件上传的基本原理是必要的。在HTTP协议中,文件上传通常通过POST请求实现,其中包含了...
在学习过程中,除了阅读手册,还建议动手实践,结合实际项目加深理解,以便更好地应用WebWork框架解决实际问题。此外,了解WebWork的进化历程和它如何与Struts2等其他框架融合也很有帮助,因为这能让你了解框架的...
WebWork2中文文档是针对这个框架的一份详尽的中文参考资料,对于国内开发者来说,无疑是一个宝贵的资源。 文档可能涵盖了以下关键知识点: 1. **WebWork2基础**:介绍WebWork2的基本架构,包括Action、Interceptor...
它可能涵盖了与"Webwork2 Guide"相似但翻译成中文的内容,帮助读者理解Webwork的各个方面,同时也可能包括一些中文社区的使用经验或特定问题的解决方案。 在阅读这两个文档时,你将了解到如何利用Webwork创建各种...