WebWork有两个主要配置文件:
web.xml 和 xwork.xml.在下面您可以找到WebWork必须和可选的配置文件的所有信息.
下面是您需要注意的所有文件.为了使开发更容易,其中的一些是可以动态重新加载的.
文件 | 可选 | 位置(相对于webapp) | 用途 |
---|---|---|---|
web.xml | 否 | /WEB-INF/ | Web部署描述,包括所有必须的WebWork组件 |
xwork.xml | 否 | /WEB-INF/classes/ | 主要配置,包括result/view类型,action影射,拦截器等 |
webwork.properties | 是 | /WEB-INF/classes/ | WebWork的属性配置 |
webwork-default.xml | 是 | /WEB-INF/lib/webwork-x.x.jar | xwork.xml中应该有的默认配置 |
velocity.properties | 是 | /WEB-INF/classes/ | velocity配置 |
静态内容
webwork需要的公共静态内容(JavaScript和CSS文件等)是由FilterDispatcher过滤器自动提供的.任何以"/webwork/"开始的请求被认为是静态内容,"/webwork/"后面的值会被影射到classpath下的WebWork公共包
默认情况下,系统会搜索以下包:
- com.opensymphony.webwork.static
- template
附加包可以通过设定packages参数(web.xml中FilterDispatcher过滤器的配置)来指定,这个参数是以逗号分割的列表.当指定附加的静态内容时,注意不要暴露敏感信息(如,数据库密码等).
web.xml
如果要用到WebWork的最新特性并且不需要考虑向后兼容问题,您只需要在web.xml中添加一个单独的过滤器.如果要用JSP的话,还需要一个添加标签库.但是如果是从2.1.7或更早的版本升级的Web应用程序,那么需要做更多的工作使程序能够正常运行.更多信息请查看web.xml 2.1.x兼容性.
过滤器配置如下:
< filter-name > webwork </ filter-name >
< filter-class > com.opensymphony.webwork.dispatcher.FilterDispatcher </ filter-class >
</ filter >
< filter-mapping >
< filter-name > webwork </ filter-name >
< url-pattern > /* </ url-pattern >
</ filter-mapping >
< listener >
< listener-class > org.springframework.web.context.ContextLoaderListener </ listener-class >
</ listener >
注意:
url-pattern以前使用ServletDipatcher的时候,url-pattern是“*.action”,现在改成“/*”。因为Filter不但对action拦截,而且对其他类型的url也要拦截。指定action扩展名挪到了webwork.properties里面:
引用 webwork.action.extension = action
这样改为了支持Ajax一些特殊的URL,例如:/webwork/……是去请求服务器端dojo JS库,所以url-pattern一定要改,并且区分不同的请求,究竟是action还是/webwork/普通资源,FilterDispatcher会根据不同的情况执行不同的操作。
如果要用到JSP,标签库配置如下:
一般来说这个配置不是必需的,因为标签库已经被包括在webwork.jar中了.
如果您真的需要在web.xml中配置标签库,可以把webwork/src/java/META-INF/taglib.tld文件复制为您的应用程序的WEB-INF目录下,命名为webwork.tld
-->
< taglib >
< taglib-uri > webwork </ taglib-uri >
< taglib-location > /WEB-INF/webwork.tld </ taglib-location >
</ taglib >
web.xml文档实例:
< web-app id ="WebApp_9" version ="2.4" xmlns ="http://java.sun.com/xml/ns/j2ee" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation ="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >
< display-name > Struts Test </ display-name >
< filter >
< filter-name > struts2 </ filter-name >
< filter-class > org.apache.struts2.dispatcher.FilterDispatcher </ filter-class >
</ filter >
< filter-mapping >
< filter-name > struts2 </ filter-name >
< url-pattern > /* </ url-pattern >
</ filter-mapping >
< welcome-file-list >
< welcome-file > index.jsp </ welcome-file >
</ welcome-file-list >
</ web-app >