论坛首页 入门技术论坛

初试webwork->进阶

浏览 1239 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-02-26   最后修改:2009-02-27

一、部署工程web.xml里没有定义webwork,为什么页面直接可以使用webwork
<%@   taglib   prefix="ww"   uri="/webwork"%>
原因如下:
 1   用WINRAR打开webwork.jar  
   
  2  找到META-INF文件夹  
   
  3   打开里面的taglib.tld文件  
   
  4   会看到里面有一个<uri>/webwork</uri>标签只要<%@ taglib prefix="ww" uri="/webwork"%>中的uri和<uri>/webwork</uri>的内容一致就可以不必在web.xml中定义<taglib> 
二、XWork配置文件详解
  XWork配置文件是以“xwork”命名的.xml文件,它必需放到类路径(classPath)的根目录, Web应用一般放在classes目录中,它需要遵守DTD的规范。这个文件定义了我们的Action,Interceptor,Result的配置和相互之间的映射。
    将总的配置文件和业务上的配置文件分离,即1+N模式:
  1文件:xwork.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!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="default" extends="webwork-default"
        externalReferenceResolver="com.atlassian.xwork.ext.SpringServletContextReferenceResolver">
        <interceptors>
            <interceptor name="reference-resolver"
                class="com.opensymphony.xwork.interceptor.ExternalReferencesInterceptor"/>

            <interceptor-stack name="modelParamsStack">  
                <interceptor-ref name="model-driven"/>
                <interceptor-ref name="params"/>
                <interceptor-ref name="validationWorkflowStack"/>
                <interceptor-ref name="reference-resolver"/>
            </interceptor-stack>
        </interceptors>

        <default-interceptor-ref name="modelParamsStack"/>

    </package>

    <include file="xwork/system.xml"/>
    ......
</xwork>


  N文件:system.xml,......:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd">
<xwork>
  <package name="login" extends="default" namespace="/system">
    <action name="login" class="com.linkage.manage.ui.system.LoginAction" method="login">
        <external-ref name="systemBO">systemBO</external-ref>
        <result name="success" type="dispatcher">
            <param name="location">/manage/index.jsp</param>
        </result>
        <result name="input" type="dispatcher">
            <param name="location">/manage/login.jsp</param>
        </result>
    </action>
    <action name="logout" class="com.linkage.manage.ui.system.LogoutAction" method="logout">
        <result name="success" type="dispatcher">
            <param name="location">/manage/login.jsp</param>
        </result>
    </action>
  </package>
</xwork>


三、xwork.xml文件的标签元素
  xwork配置文件的所有内容,都是定义在<xwork>标签中,它的直接子标签有<package>和<include>。

URL:xxxx/system/logout.action
<package>

 

配置文件按文档的顺序,由上向下执行,用“extends”引用的package必需在引用之前定义

是否必需

  

name

用来标识package的名称 eg:logout

extends

继承它所扩展的package配置信息

namespace

指定package的命名空间,默认是”” eg:/system

abstract

声明package是抽象的

 

 四、页面iterator标签使用

如果action返回一个名为list的List(注意:该变量必须要有getXXX()方法),里面存放User类的列表,User类中有一个username的属性:

<ww:iterator =”list”>

<ww:property =”username”/>

</ww:iterator>

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics