日期:2014-05-16  浏览次数:20671 次

Apache Struts 2.2.1 GA版发布

昨日,Apache软件基金会发布了Struts 2.2.1 GA版。Struts 2.2.1包含了重要的安全修复。Apache建议开发者将现有的Struts2应用升级到Struts 2.2.1。

Struts 2.2.1的内部变化主要有:

  • XWork已经迁移到了Apache软件基金会,现在成为了Struts 2的一部分。新版XWork 2.2.0也随着Struts 2.2.1一同发布。未来,XWork将会迁移到Struts 2中。
  • XWork Maven artifact现在已位于<groupId>org.apache.struts.xwork</groupId>下。
  • XWork使用了最新版的OGNL 3.0,OGNL源代码仓库则位于Github上。
  • Javassist依赖被OGNL排除,要记得将其包含进来,除非在JBoss服务器上加载应用。
  • 解决了XWork一些突出的缺陷,感兴趣的读者可以参考CVE-2010-1870: Struts2/XWork remote command execution来了解详情。
  • 所有的示例应用(除了jboss-blank)都包含了Javassist依赖。
  • 新的jboss-blank示例应用使用了JBoss服务器,它没有将jboss-blank库包含进来,因为JBoss服务器已经提供了。
  • 增加了新的Freemarker缓存选项,这会提升标签的渲染速度,感兴趣的读者可以参考WW-3467并了解关于FreeMarker的更多信息。

Struts 2.2.1修复了之前版本的众多bug,主要修复列举如下:

  • <s:reset type="image">标签上缺少src属性
  • Struts2 showcase无法在JBoss 5.1上部署
  • struts-sitemesh-plugin 2.1.8中FreeMarkerPageFilter的失效问题
  • XWork FileManager不会解码URL
  • ConventionUnknownHandler与rest插件的协作问题
  • StrutsSpringTestCase的内存泄漏问题
  • css_xhtml主题无法应用在IE8上,在其他浏览器上也无法正常使用
  • javassist在JBoss 5.1上的问题

Struts 2.2.1的主要改进列举如下:

  • 升级至OGNL 2.7
  • 文件上传:可以对allowedTypes参数设置不同的File Content Type值
  • 完全集成了SiteMesh 2、Freemarker 2.4.2及Velocity 1.3
  • 将xwork核心迁移至Struts 2
  • 将FreeMarker升级至2.3.16
  • 将Velocity引擎升级至1.6.3

感兴趣的读者可以从Struts官方网站下载最新版的Struts 2.2.1,也可以阅读InfoQ中文站的《深入浅出Struts 2》迷你书快速上手Struts 2。