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

你可能感兴趣的:(jsp,xml,struts,servlet,dojo)