今天将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)功能是应用在同一级别(层次)的定义上。