在网上google半天也没见人解决,还是看了FilterDispatcher的源码才解决,特地贴到blog上,备忘吧。
在com.opensymphony.webwork.dispatcher.FilterDispatcher中有以下代码
1 if ("true".equals(Configuration.get(WebWorkConstants.WEBWORK_SERVE_STATIC_CONTENT))
2 && resourcePath.startsWith("/webwork")) {
3 String name = resourcePath.substring("/webwork".length());
4 findStaticResource(name, response);
5 } else {
6 // this is a normal request, let it pass through
7 chain.doFilter(request, response);
8 }
也就是说,只要webwork.properties文件中webwork.serve.static=true(系统默认),并且FilterDispatcher这个过滤器对/webwork/*这个url进行了处理的话,就不会发生使用ww2提供的
datepicker时,找不到/webwork/*下所有的js、image等资源,不得不手工拷贝webwork.jar中/com/opensymphony/webwork/static为/webwork/*的情况。
1 <filter>
2 <filter-name>webwork</filter-name>
3 <filter-class>com.opensymphony.webwork.dispatcher.FilterDispatcher</filter-class>
4 </filter>
5 <filter-mapping>
6 <filter-name>webwork</filter-name>
7 <url-pattern>*.action</url-pattern>
8 </filter-mapping>
9 <filter-mapping>
10 <filter-name>webwork</filter-name>
11 <url-pattern>/webwork/*</url-pattern>
12 </filter-mapping>