今天將webwork從2.17升級到webwork2.2.2
1、在webwork里的Request是包裝過的。用的是com.opensymphony.webwork.dispatcher.WebWorkRequestWrapper。
它改寫了getAttribute()方法。首先是去request的getAttribute()里面取數據,如果沒有取到,則去ValueStack里面取。小心哦!
2、從OgnlValueStack里面查找對象時,如果你的表達式語言是數字,則返回一個對應的數字。例如:表達式語言123,從ValueStack里面取得的是整型123。太trick了!
3、集合支持不向下兼容。XWorkList已經是@deprecated,用它就錯,還不如直接刪除掉。在webwork2.2中,它需要為集合另外配置一個conversion.properties文件。真不明白,這樣有什么優點?
4、在webwork2.1.7的ServletDispatcher中提供了異常處理,Action異常將由HttpServletResponse拋出500錯誤;資源缺少導致的錯誤(例如action沒有找到,或者jsp文件不存在),則由HttpServletResponse拋出404錯誤。在webwork2.2.2中,遇到Action異常則直接拋出ServletException。
5、驗證文件。驗證執行的順序不再是從上到下,“Plain validator”先執行,即直接用<validator>定義的驗證優先級比字段驗證<field>高。這樣就要注意驗證的執行順序哦。短路(short-circuited)功能是應用在同一級別(層次)的定義上。