理解webwork配置文件

理解webwork配置文件的作用和配置方法

这么多配置文件,头都晕了。到底每个配置文件都干么用的呢?
1、先了解一下web.xml
该文件是web服务器启动的时候调用的一个配置文件,我们需要在这个配置文件中告诉web服务器,在启动的时候,还需要加载启动哪些东西。上述的web.xml中,
我们启动了velocity,对应的类文件是:com.opensymphony.webwork.views.velocity.WebWorkVelocityServlet。
还启动了webwork,对应的类文件是:com.opensymphony.webwork.dispatcher.ServletDispatcher。
并且我们在这个配置文件中定义了servlet映射:*.action结尾的servlet请求,都交给webwork即com.opensymphony.webwork.dispatcher.ServletDispatcher这个servlet去处理。
所有*.vm结尾的servlet请求都由velocity即com.opensymphony.webwork.views.velocity.WebWorkVelocityServlet这个类去处理。
并且告诉web服务器,我们引用了一个webwork的taglib库,该库所在的位置是:/WEB-INF/lib/webwork-2.1.7.jar。(注:jbulder编译的时候,会自动将webwork-2.1.7.jar拷贝到WEB-INF/lib/目录下)
2、xwork.xml
xwork.xml是webwork的核心配置文件的所在了。这个文件在web服务器启动的时候调用。具体的来说,该文件是在webflow这个部分的 com.opensymphony.webwork.webFlow.XworkConfigRetriever.java这个类中初始化的时候调用。
Xwork.xml文件的作用就是要告诉服务器的webwork解释器,遇到什么样子的action请求,要到哪个类中去调用相关的方法。举个例子来说,假如有一个请求action叫做/userList.action,那么xwork.xml就负责告诉webwork解释器,当请求这个action的时候,要到com.lovefanx.action.user.UserAction这个类去寻找相应的方法。
来看一个简单的xwork的配置文件:

<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd">
<xwork>
<!--UserAction Config,Path is:user-->
<package name="User" extends="webwork-default" namespace="/user">
<!--Get User List-->
<action name="userList" class="com.lovefan.action.user.UserAction" method="list">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="loginCheck" />
<result name="success" type="dispatcher">
<param name="location">/user/user/userList.jsp</param>
</result>
</action>
</xwork>

在这个webwork配置文件中,我们首先定义了一个package,包。这个包其实是一个逻辑概念。它仅对于webwork负责。包的作用就是将一些 或者一组action放在同一个逻辑区域。当需要调用对应的action的时候,需要加上包定义中的namespace(名称空间)属性值。
就拿上述的例子来说,其中定义了一个包叫做User,其名称空间是/user。在这个包中定义了一个action,叫做userList,这个action的method是 list,对应的action类是com.lovefan.action.user.UserAction。那么,当浏览器请求/user/userList.action的时候,webwork解释器就会根据这个配置,去 访问com.lovefan.action.user.UserAction这个类中的list方法。那么在这个调用中,webwork会先调用一个叫做defaultStack的拦截器,然后调用一个 叫做loginCheck的拦截器,然后才会调用UserAction的list方法,如果list方法返回success,那么web服务器将浏览器定向到/user/userList.jsp去。
不妨来看看UserAction.java这个类的list方法:

public class UserAction extends CIMSActionSupport{
public UserAction() {
}
public String list(){
UserDAO userDAO = new UserDAO();
this.page = new PageSplit(userDAO.getCount(),this.pageNo);
userBeanList = userDAO.findAll(this.page.getStartRecord(),this.page.getPageSize());
return SUCCESS;
}
}

这样,根据一个servlet请求,webwork就可以通过ServletDispacher这个总管,去调用相关的UserAction类,并且知道需要调用的方法是哪一个。 可见xwork文件的职责所在。
Xwork.xml还有一个巨大的好处,就是他可以用嵌套的方式来进行配置。这样就很适合用于团队开发。不同的人员编写自己那个部分的配置文件, 最后统一通过嵌套文件名称的方式,合成到xwork.xml中来。特别简单,下面来看一个xwork..xml嵌套其他配置文件的例子。

<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd">
<xwork>
<include file="webwork-default.xml"/>
<include file="com/lovefan/config/user.cfg.xml"/>
<include file="com/lovefan/config/security.cfg.xml"/>
</xwork>

一个配置文件中,是可以描述说明多个Action的。
3、Webwork-default.xml文件
我们在xwork.xml文件例子中,看到了这个webwork-default.xml文件被嵌套到了xwork.xml中。这个default文件是webwork提供的,它描述了webwork在工作过程中用到的各个Servlet的返回值类型、各拦截器的名称及其相对应的类 。
4、Webwork.properties
这个文件定义了一些webwork工作过程中的全局性的值。
例如webwork.locale=zh_CN
webwork.multipart.saveDir=\temp #定义当文件上传的时候,临时文件目录
webwork.multipart.maxSize=12345 #定义可以上传的文件的最大大小。
webwork.velocity.tag.path = com.opensymphony.webwork.views.velocity.ui, org.displaytag.tags
webwork.xslt.nocache=false #定义对于xslt程序,不使用cache
webwork.ui.templateDir = template #定义了webwork的ui模板库的目录
webwork.i18n.encoding = GBK #定义webwork运行时数据传输过程中数据的编码格式
5、Velocity.properties
定义webwork中使用velocity模版库得方式。
velocimacro.library = webwork.vm, tigris-macros.vm #包含两个库webwork.vm和tigris-macros.vm
input.encoding=GB2312 #模版文件输入编码为GB2312
output.encoding=GB2312 #模版文件输出编码为GB2312
default.contentType=text/html; charset=GB2312 #默认的文件contentType类型为以GB2312编码的html文件
6、Validators.xml
这个配置文件是用来配置数据校验用的。在这个文件中定义了各中名称的校验器对应的校验处理的类。这些都是webwork的release版本中已经提供了的校验器。我们可以不用配置该文件,直接copy过来就用了。
但是如果你觉得webwork提供的这些校验器还不够用的话,那么就要自己定义或者开发相关的校验类,并且将对应的配置加到这个validators.xml文件中来。
到此,webwork使用的配置文件基本都介绍完了,相信仔细阅读了上述内容以后,一定会对webwork的配置文件有了一个比较全面的认识,并且对webwork的工作原理也有了一定的了解。下面让我们更加深入的来了解一下在webwork中,jsp程序,java类、这些开发者自己开发的程序之间的调用关系。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值