第1.4式. 从Struts 1.1 升级至Struts 1.2
问题
你想要升级基于Struts 1.1 的应用至Struts 1.2。
动作分解
Table 1-4. Struts 1.1 和 1.2 的Taglib URI |
Struts 1.1 Taglib URI |
Struts 1.2.4 Taglib URI |
http://jakarta.apache.org/struts/tags-bean |
http://struts.apache.org/tags-bean |
http://jakarta.apache.org/struts/tags-html |
http://struts.apache.org/tags-html |
http://jakarta.apache.org/struts/tags-logic |
http://struts.apache.org/tags-logic |
http://jakarta.apache.org/struts/tags-template |
http://struts.apache.org/tags-template |
http://jakarta.apache.org/struts/tags-tiles |
http://struts.apache.org/tags-tiles |
http://jakarta.apache.org/struts/tags-nested |
http://struts.apache.org/tags-nested |
- 将validation.xml文件中开头的的DOCTYPE 声明修改为:
<!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN" http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
- 将struts-config.xml文件中开头的DOCTYPE 声明修改为:
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
- 将ActionError 类的使用替换为ActionMessage 类。
- 将除了定制ActionForms 的validate( )方法之外的地方的ActionErrors类的使用替换为ActionMessages类。
- 去除ActionServlet中除了config参数之外的其他任何init-param元数的依赖。这些参数在Struts 1.1 中已经不赞成,而在Struts 1.2已经不支持。而是将这些参数值移到struts-config.xml文件中。这些参数大多数被controller元素的属性替代了。
- 去除html:form标签中对name, scope, 和type属性的依赖。这些参数在Struts 1.1 中已经不赞成,而在Struts 1.2已经不支持。
动作变化
Struts 1.2 的正式目标是去除不赞成方法并完成对模块化的支持。尽管Struts 1.2 并未对Struts 1.1 的核心进行彻底的修改,它也包括了一些值得努力去升级的新的特征和增强。大部分这些特征都将在本秘籍中讨论。下面是一些明显的增强:
- 新的validwhen校验器用作复杂的交叉字段校验(第8.4式)
- 支持通配符的action mapping,允许你在多个相关的URL中重用action元素。(第7.8式)
- 新的预构建的action 包括一个新的MappingDispatchAction类和一个场所切换LocaleAction类(第6.10 式和第12.4式)
对于新应用,应该尽量使用Struts 1.2。如果你已经有一个Struts 1.1 应用,你将发现Struts 1.2 引入了大量新的和有用的特征。比之于从Struts 1.0 升级至Struts 1.1,从升级Struts 1.2 要容易些,只需要少一些的代码修改。
相关招式
Struts wiki 有一些关于这个升级的详细内容。相关的wiki 页面可以在http://wiki.apache.org/struts/StrutsUpgradeNotes11to124中找到。