This page last changed on Dec 13, 2004 by casey.

综述

使用包可以将活动, 结果, 结果类型, 截取器和栈组合为一个逻辑单元的并使它们共享通用配置. 包和对象类似, 子包也可以扩展并覆盖父包的某些部分.

包

package元素有一个必需属性"name", 它作为后面引用该包的键值. "extends"属性是可选的, 允许一个包继承前一个或几个包的配置信息, 包括所有的截取器, 截取器栈, 和活动. 需要注意的是, 配置文件是从上到下顺序进行处理的, 因此被其他包引用的包应当定义在前面. "abstract"可选属性用来创建一个抽象包, 扩展该包时不包含其中的活动配置.
属性 必需 描述
name 是 其他包引用时的键值
extends 否 从扩展的包中继承
namespace 否 参见名空间
abstract 否 声明为抽象包(包中不需要活动配置)
xwork.xml中的使用示例
<package name="bar" extends="webwork-default" namespace="/foo/bar">
        <interceptors>
            <interceptor-stack name="barDefaultStack">
                <interceptor-ref name="debugStack"/>
                <interceptor-ref name="defaultStack"/>
            </interceptor-stack>
        </interceptors>

        <action name="Bar" class="com.opensymphony.xwork.SimpleAction">
            <interceptor-ref name="barDefaultStack"/>
        </action>

        <action name="TestInterceptorParamInheritance" class="com.opensymphony.xwork.SimpleAction">
            <interceptor-ref name="test">
                <param name="expectedFoo">expectedFoo</param>
            </interceptor-ref>
        </action>

        <action name="TestInterceptorParamInehritanceOverride" class="com.opensymphony.xwork.SimpleAction">
            <interceptor-ref name="test">
                <param name="foo">foo123</param>
                <param name="expectedFoo">foo123</param>
            </interceptor-ref>
        </action>
    </package>

    <package name="abstractPackage" namespace="/abstract" abstract="true">
        <action name="test" class="com.opensymphony.xwork.SimpleAction"/>
    </package>

    <package name="nonAbstractPackage" extends="abstractPackage" namespace="/nonAbstract"/>

    <package name="baz" extends="default" namespace="baz">
        <action name="commandTest" class="com.opensymphony.xwork.SimpleAction">
            <param name="foo">123</param>
            <result name="error" type="chain">
                <param name="actionName">bar</param>
            </result>
            <interceptor-ref name="static-params"/>
        </action>
        <action name="myCommand" class="com.opensymphony.xwork.SimpleAction" method="commandMethod">
            <param name="bar">456</param>
            <result name="success" type="chain">
                <param name="actionName">foo</param>
            </result>
            <interceptor-ref name="logger"/>
        </action>
    </package>

    <package name="multipleInheritance" extends="default,abstractPackage,bar" namespace="multipleInheritance">
        <action name="testMultipleInheritance" class="com.opensymphony.xwork.SimpleAction">
            <result name="success" type="chain">
                <param name="actionName">foo</param>
            </result>
            <interceptor-ref name="barDefaultStack"/>
        </action>
    </package>
Document generated by Confluence on Dec 14, 2004 16:36