WebWork配置與應(yīng)用示例
WebWork配置首先從 http://webwork.dev.java.net/servlets/ProjectDocumentList下載***的WebWork壓縮包,并將其解壓開來。打開解壓目錄,你將看到以下的文件和目錄:
◆webwork-2.x.jar 當(dāng)然就是WebWrok***發(fā)布的Jar包
◆webwork-example.war 是WebWrok自帶的很有代表性的功能演示例子,掌握它是提高你的WebWork技術(shù)水平的捷徑
◆webwork-migration.jar 提供快速將1.x版本移植到2.x版本所用的類文件
docs目錄 WebWrok的使用文檔,包括api文檔、clover文檔、單元測試(Junit)文檔等
lib目錄 WebWork在運行或編譯時所用到的所有.jar包
src目錄 源程序目錄
當(dāng)然,在具體開發(fā)使用介紹之前,搭建好運行環(huán)境是必備的。
首先從http://webwork.dev.java.net/servlets/ProjectDocumentList下載***的WebWork壓縮包,在WebWork配置前將其解壓開來。打開解壓目錄,你將看到以下的文件和目錄:
webwork-2.x.jar 當(dāng)然就是WebWrok***發(fā)布的Jar包
webwork-example.war 是WebWrok自帶的很有代表性的功能演示例子,掌握它是提高你的WebWork技術(shù)水平的捷徑
webwork-migration.jar 提供快速將1.x版本移植到2.x版本所用的類文件
docs目錄 WebWrok的使用文檔,包括api文檔、clover文檔、單元測試(Junit)文檔等
lib目錄 WebWork在運行或編譯時所用到的所有.jar包src目錄 源程序目錄
Tomcat下一個完整webwork的HelloWolrd程序的目錄結(jié)構(gòu):
◆webapp
◆eva(應(yīng)用名稱)
◆WEB-INF
◆src(class)
◆lib
Lib中的jar包來源于:
用WebWork當(dāng)然要將它的運行時用到的Jar包放到Web容器可以找到的ClassPath中,將步驟1介紹的webwork-2.x.jar放到你部署目錄下WEB-INF\lib目錄里,同時將WebWrok解壓目錄lib\core下的所有.jar文件也拷貝到WEB-INF\lib目錄,這些是運行WebWork必需要用到的jar包
附件:3.jpg(10K)
2. xwork.xml說明應(yīng)放于class目錄中,且應(yīng)有如下配置:
- < !DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN"
- "http://www.opensymphony.com/xwork/xwork-1.0.dtd">
- < xwork>
- < include file="webwork-default.xml" />
- < package name="example" extends="webwork-default"
- namespace="/webwork/example">
- < action name="hello" class="com.eva.webwork.example.HelloWorldAction">
- < result name="success" type="dispatcher">
- < param name="location">/greetings.jsp< /param>
- < /result>
- < /action>
- < /package>
- < /xwork>
一定要有< include file="webwork-default.xml" />句, webwork-default.xml文件在webwork2.1.7.jar包中.
3. webwork.properties文件
也應(yīng)將webwork.properties文件和velocity.properties文件同時也放于src目錄下.否則將出現(xiàn)找不到” "success" type="dispatcher"”定義的Exception. webwork.properties文件中注意應(yīng)是如下內(nèi)容:
webwork.locale=zh_CNwebwork.i18n.encoding=GBK
◆在生產(chǎn)環(huán)境中,應(yīng)該設(shè)置為falsewebwork.configuration.xml.reload=false
webwork.multipart.saveDir=\tempwebwork.multipart.maxSize=12345
◆added the MockTag to the path of Tags that the TagDirective will search throughwebwork.velocity.tag.path = com.opensymphony.webwork.views.velocity.ui, org.displaytag.tags
webwork.xslt.nocache=false
webwork.ui.templateDir = template其中含義請參考”WebWork教程.doc”
.namespace是命名空間(包名),在xwork.xml中應(yīng)該唯一.可將每個包的配置文件分別出來均以< include file="包名.xml" />形式包含在xwork.xml文件中.當(dāng)通過web訪問時,則應(yīng)與命名空間為路徑,如上段配置,是在eva這個應(yīng)用下的,則web的根路徑應(yīng)是http://127.0.0.1:8080/eva/,當(dāng)要訪問hello.action時,訪問地址應(yīng)是:http://127.0.0.1:8080/webwork/example/hello.action,也就是說:web訪問路徑應(yīng)該與xwork.xml配置文件中< package/>標(biāo)簽中”namespace”屬性一致,一個xwork.xml中可以包含多個< package/>標(biāo)簽,但其中的package name=””的值應(yīng)該是唯一的.
因此,在實際開發(fā)中建議將jsp頁面與類文件對應(yīng)存放.如,hjcm應(yīng)用中合同管理模塊的jsp頁面都存放在[hjcm]web應(yīng)用的根目錄/hjcm/contract/XXXX.jsp,則相應(yīng)處理合同的類文件,都建立在包名為hjcm.contract.XXXX.java,則在WEB-INF下可相應(yīng)的建立hjcm.contract.xml文件,將本包內(nèi)所用在的action配置在文件中,然后再將這個文件添加在總的xwork.xml文件中,如下:
- xwork.xml
- < !DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN"
- "http://www.opensymphony.com/xwork/xwork-1.0.dtd">
- < xwork>
- < !-- Include webwork defaults (from WebWork JAR). -->
- < include file="webwork-default.xml" />
- < include file="suww-default.xml" />
- < include file="common.toolbar.xml" />
- < include file="dbconfig.xml" />
- < include file="hjcm.entry.xml" />
- < include file="hjcm.contract.xml" />
- < include file="hjcm.none_contract.xml" />
- < include file="hjcm.settlement.xml" />
- < include file="hjcm.expert.xml" />
- < /xwork>
- hcjm.contract.xml
- < !DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN"
- "http://www.opensymphony.com/xwork/xwork-1.0.dtd">
- < xwork>
- < package name="contract" extends="webwork-default"
- namespace="/hjcm/contract">
- < action name="getList" class="com.supporter.prj.hjcm.
- contract.ContractListAction">
- < result name="success" type="dispatcher">
- < param name="location">/hjcm/contract/contract_list.jsp< /param>
- < /result>
- < interceptor-ref name="params"/>
- < /action>
- < action name="edit" class="com.supporter.prj.hjcm.contract.ContractAction"
- method="edit">
- < result name="success" type="dispatcher">
- < param name="location">/hjcm/contract/contract_detail.jsp< /param>
- < /result>
- < /action>
- …… …… ……
- < /package>
- < /xwork>
一定不要忘記建立web.xml時要有如下WebWork配置:
- < ?xml version="1.0" encoding="UTF-8"?>
- < !DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application
- 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
- < web-app>
- < display-name>My WebWork Application< /display-name>
- < servlet>
- < servlet-name>webwork< /servlet-name>
- < servlet-class>com.opensymphony.webwork.dispatcher.ServletDispatcher
- < /servlet-class>
- < load-on-startup>1< /load-on-startup>
- < /servlet>
- < servlet-mapping>
- < servlet-name>webwork< /servlet-name>
- < url-pattern>*.action< /url-pattern>
- < /servlet-mapping>
- < taglib>
- < taglib-uri>webwork< /taglib-uri>
- < taglib-location>/WEB-INF/webwork.tld< /taglib-location>
- < /taglib>
- < taglib>
- < taglib-uri>benchmark< /taglib-uri>
- < taglib-location>/WEB-INF/taglibs-benchmark.tld< /taglib-location>
- < /taglib>
- < taglib>
- < taglib-uri>c< /taglib-uri>
- < taglib-location>/WEB-INF/c.tld< /taglib-location>
- < /taglib>
- < /web-app>
將WebWork配置得Web.xml文件應(yīng)直接放于WEB-INF目錄下
【編輯推薦】