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