struts2.0.6 升级到 struts2.1.6 时应注意的问题汇总(转载)
最近在弄2.0升级到2.1的问题,关于这类的问题又很少,希望转载可以方便大家参考。
1. 升级 struts core 到 2.1.6
升级 各插件 到 smruts-x-2.1.x 版本
在 配置API 方面,2.0 和 2.1 有非常大的变化,适用于2.0的第三方插件可能不适合2.1。比如xwork
2. struts.xml 文件 语法的改变
结果返回类型和拦截器开始使用camelCase(驼峰写法)取代之前使用的hyphenated names(连接符写法)
Interceptors:
Old New
-----------------------
external-ref externalRef
model-driven modelDriven
static-params staticParams
scoped-model-driven scopedModelDriven
servlet-config servletConfig
token-session tokenSession
Results:
Old New
-----------------------
redirect-action redirectAction
plaintext plainText
3. Dojo 被 移为 第三方插件
4. 安全原因,jsp EL 取值方式 $ 不被继续支持。
应采用 ognl 表达式 取值, 如果是要展现 html,还应加上 escape="false"
5. 静态方法通过 ognl 反射调用 被 disabled, 安全原因。
通过表达式, 比如"@org.somewhere.FooUtls@fooMethod()"方式已被禁止。如要使用,改变语法,或者在配置中声明 struts.ognl.allowStaticMethodAccess 重新启用
6. 自定义 tag ,调用 valuestack, 不能再使用 el 表达式。 请查看 struts 2 的源代码,参照 s:set s:property 等的语法,来自定义 tag
7. 关于
<s:include value="a.jsp">
<s:param name="parame" value="p" />
</s:include>
在 a.jsp 中得到 parame 的方式
<% request.setAttribuate("parame", request.getParameter("parame")); %>
<s:set name="parame" value="#attr.parame" />
<s:property value="#parame" />
原文出处:http://hi.baidu.com/rtsbtx/blog/item/d40b4f2da2a3e03d349bf782.html