webwork的基本配置与应用示例

webwork的基本配置与应用示例

By keda 发表于 2006-1-11 17:59:00

前提资源下载: webwork-2.1.7.

首先从https://webwork.dev.java.net/servlets/ProjectDocumentList下载最新的WebWork压缩包,并将其解压开来。打开解压目录,你将看到以下的文件和目录:
webwork-2.x.jar 当然就是WebWrok最新发布的Jar包
webwork-example.war 是WebWrok自带的很有代表性的功能演示例子,掌握它是提高你的WebWork技术水平的捷径
webwork-migration.jar 提供快速将1.x版本移植到2.x版本所用的类文件
docs目录 WebWrok的使用文档,包括api文档、clover文档、单元测试(Junit)文档等
lib目录 WebWork在运行或编译时所用到的所有.jar包
src目录 源程序目录

当然,在具体开发使用介绍之前,搭建好运行环境是必备的。
首先从https://webwork.dev.java.net/servlets/ProjectDocumentList下载最新的WebWork压缩包,并将其解压开来。打开解压目录,你将看到以下的文件和目录:
webwork-2.x.jar 当然就是WebWrok最新发布的Jar包
webwork-example.war 是WebWrok自带的很有代表性的功能演示例子,掌握它是提高你的WebWork技术水平的捷径
webwork-migration.jar 提供快速将1.x版本移植到2.x版本所用的类文件
docs目录 WebWrok的使用文档,包括api文档、clover文档、单元测试(Junit)文档等
lib目录 WebWork在运行或编译时所用到的所有.jar包
src目录 源程序目录

Tomcat下一个完整webwork的HelloWolrd程序的目录结构:
webapp
  eva(应用名称)
    WEB-INF
      src(class)
      lib

Lib中的jar包来源于:
  用WebWork当然要将它的运行时用到的Jar包放到Web容器可以找到的ClassPath中,将步骤1介绍的webwork-2.x.jar放到你部署目录下WEB-INF/lib目录里,同时将WebWrok解压目录lib/core下的所有.jar文件也拷贝到WEB-INF/lib目录,这些是运行WebWork必需要用到的jar包
               
2. xwork.xml说明
应放于class目录中,且应有如下配置:

<!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文件
也应将webwork.properties文件和velocity.properties文件同时也放于src目录下.否则将出现找不到” "success" type="dispatcher"”定义的Exception. webwork.properties文件中注意应是如下内容:
webwork.locale=zh_CN
webwork.i18n.encoding=GBK

#在生产环境中,应该设置为false
webwork.configuration.xml.reload=false

webwork.multipart.saveDir=/temp
webwork.multipart.maxSize=12345

# added the MockTag to the path of Tags that the TagDirective will search through
webwork.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中应该唯一.可将每个包的配置文件分别出来均以
<include file="包名.xml" />形式包含在xwork.xml文件中.当通过web访问时,则应与命名空间为路径,如上段配置,是在eva这个应用下的,则web的根路径应是http://127.0.0.1:8080/eva/,当要访问hello.action时,访问地址应是:http://127.0.0.1:8080/webwork/example/hello.action,也就是说:web访问路径应该与xwork.xml配置文件中<package/>标签中”namespace”属性一致,一个xwork.xml中可以包含多个<package/>标签,但其中的package name=””的值应该是唯一的.
因此,在实际开发中建议将jsp页面与类文件对应存放.如,hjcm应用中合同管理模块的jsp页面都存放在[hjcm]web应用的根目录/hjcm/contract/XXXX.jsp,则相应处理合同的类文件,都建立在包名为hjcm.contract.XXXX.java,则在WEB-INF下可相应的建立hjcm.contract.xml文件,将本包内所用在的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时要有如下配置:

<?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>
Web.xml文件应直接放于WEB-INF目录下.

 
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页