第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中找到。