【转】Struts 1.x 配置文件详解(下)

9)      form-property标记

form-property标记用于定义动态的FormBean的表单属性,动态FormBean可以使您在Struts的配置文件当中(而不是具体的类当中)定义表单的属性.如果包含的form-bean标记的type属性不是org.apache.struts.action.DynaActionForm或者其子类,则将忽略此标记.

属性

说明

必需

className

指定该属性要使用的FormPropertyConfig子类的全限定类名,默认名称为org.apache.struts.config.FormPropertyConfig

initial

指定属性的初始值.如果没有指定,属性的值将被初始化为0,对象将由其默认构造函数进行初始化(因此,String将初始化为””)

name

指定属性的名称

size

指定当type属性指定一个数组并且initial属性被省略时要创建的数组的大小.

type

指定属性的底层字段的全限定类名.此外[]可以追加到类型声明中以表示该字段的索引(比如说,java.lang.Strin[])

<form-beans>

    <form-bean name=”logonForm”

type=”org.apache.struts.action.DynaActionForm”>

                <form-property name=”username”

                             typ=”java.lang.String”/>

                <form-property name=”password”

                             type=”java.lang.String”/>

    </form-bean>

</form-beans>

不需要为FormBean定义指定具体类,您只需要将其类型设置为org.apache.struts.action.DynaActionForm或者其子类,然后使用form-property标记列出它的各个属性.

 

10)      forward标记

forward标记用于定义URL的逻辑名称,这样,代码等可以引用逻辑名称而无需引用URL本身.

使用forward标记有两种方法:

     通过在global-forwards标记中包含forward标记来定义全局forward.所有操作都可以访问全局forward.

     通过在action标记下嵌套forward标记来定义特定操作的forward.特定操作的forward只适用于包含它的操作.并将覆盖同一逻辑名称的所有全局forward.

属性

说明

必需

className

为当前forward定义指定要实例化的配置对象的全限定类名,默认名称为org.apache.struts.config.ForwardConfig

contextRelative

可以设置为true或者false,表示使用应用程序模块时,path属性指定的url是否是相对于应用程序的URL,默认值为false

name

指定forward的逻辑名称

path

指定forwardURL

redirect

可以设置为true或者false,表示是否为该forwardURL执行HTTP重定位,默认值为false

使用forward标签的第一种形式:

<global-forwards>

    <forward name=”success” path=”/success.jsp”/>

</global-forwards>

使用forward标签的第二种形式

<action-mappings>

<action path=”/search”

type=”com.yinhai.app.SearchAction”>

<forward name=”success”

path=”/results.jsp”/>

</action>
</action-mappings>

 此例定义了一个特定操作的forward.forward只适用于包含它的操作,并且将覆盖同一个逻辑名称的全局forward(如果有).

 

11)      global-exceptions标记

global-exceptions标记用于封装exception标记定义的,应用程序的一组全局异常处理程序,除非操作的响应action标记通过在其下嵌套exception标记来覆盖一个或者多个全局异常处理程序,否者这些全局异常处理程序将用于操作抛出的所有的异常.

<global-exceptions>

<exception type=”com.yinhai.app.DateFormatException”

key=”errors.date.format”

path=”/error.jsp”/>
    </global-exceptions>

        上面的标记仅封装应用程序的一组全局异常处理程序.

 

12)      global-forwards标记

global-forwards标记用于封装forwards标记定义的,应用程序的一组forward,除非嵌套的forward标记来定义一个forward,否则全局forward将作用于决定在完成操作时转向何处.

<global-forwards>

<forward name=”success”  path=”/success.jsp”/>

<forward name=”failure”   path=”/failure.jsp”/>

</global-forwards>

此标记封装应用程序的一组全局forward.

 

13)      message-resources标记

message-resources标记用于定义在查找具体化的字符串,消息和标签时Struts将使用的资源束.

属性

说明

必需

className

为当前消息资源定义指定要实例化的配置对象的全限定类名,默认名称为org.apache.struts.config.MessageResourcesConfig

factory

指定将用于创建消息资源实例的MessagesResourcesFactory子类的全限定类名,默认名称为org.apache.struts.util.PropertyMessageResourcesFactory

key

指定将存储消息资源实例的Servlet环境属性关键字,如果使用应用程序模块,模块前缀将被追加该关键字,比如${key}${prefix}默认的常量是org.apache.struts.Globals.MESSAGES_KEY指定的值

null

可以设置为true或者false,表示缺少消息时是否应该返回空值.

parameter

指定一个配置参数值,该值将传递给factory属性指定的工厂对象的createResources()方法

以下说明了message-resources标记的基本用法:

<message-resources

    parameter=”com.yinhai.app.ApplicationResources”/>

该示例指定Struts应该使用com.yinhai.app程序包中的名字为ApplicationResources.properties的文件作为其资源束,请注意,文件名中的.properties部分,并非由标记指定,Struts自动将其追加到使用parameter属性指定的文件名的后面.

有时,使用多个资源束是很有用处的,或者需要使用多个资源束.您可以通过在配置文件中使用多个message-resources标记来完成此过程,如下所示:

<message-resources

     parameter=”com.yinhai.app.ApplicationResources”/>

<message-resources

     parameter=”com.yinhai.app.AlternateApplicationResources”

     key=”alternate”/>

每个messag-resources标记示例必须通过key属性指定唯一的关键字来进行识别.除非它表示默认的资源束.不需要制定明确的关键字.

 

14)      plug-in标记

plug-in标记用于定义一个插件,Struts在应用程序启动时加载此插件,在应用程序关闭时卸载此插件.此外,插件对于在应用程序启动时加载永久性资源是非常有用的.每个插件类必须实现Strutsorg.apache.struts.action.PlugIn接口.当应用程序启动时,将调用插件的init()方法.当一应用程序关闭时候,将调用插件的destroy()方法.

属性

说明

必需

className

指定插件的全限定类名,此类必须实现org.apache.struts.action.PlugIn接口

以下示例说明了plug-in标记的用法:

<plug-in  className=”org.apache.struts.validator.ValidatorPlugIn”>

    <set-property property=”pathnames”

               value=”/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml”?>

</plug-in>

由于plug-in标记只有一个属性,由于它非常简单.大多数情况下将嵌套set-property标记来配置此插件.每个插件定义了了可以通过set-property标记配置自己的一组属性.

 

15)      set-property标记

set-property标记用于定义属性以及属性值.可以再许多其他Struts配置文件标记中嵌套该标记的实例来指定属性,这些属性将在实例化标记的相应配置对象时设置.Struts基于该标记的property属性指定的名称,使用反射来查找并调用配置对象的某种值设置方法(例如,对于名称myProp的属性,调用setMyProp()).

属性

说明

必需

property

指定属性名称

value

指定属性的值

示例:

<plug-in  className=”org.apache.struts.tiles.TilesPlugin”>

<set-property property=”definition-config” value=”/WEB-INF/tiles-defs.xml”/>

<set-property property=”moduleAware” value=”true”/>

</plug-in>

 

16)      struts-config标记

struts-config标记是Struts配置文件的根标记,因此封装了改文件中的所有的其他的标记,该标记仅仅是用于表示配置文件的开始和结束.

 

PS:元数据标记

可以再Struts配置文件的一些标记中嵌套元数据标记.元数据标记的存在只为额外信息添加到将在GUI工具或者类似的工具中显示的配置文件中,Struts本身则忽略元数据标记.所有元数据标记均无属性,因此您只需要在起始和结束标记之间添加文本已指定他们的值.如下所示:

<action path=”/search” type=”com.yinhai.app.SearchAction”>

<icon>

    <small-icon>small.gif</small-icon>

    <large-icon>large.gif</large-icon>

</icon>

<display-name>SearchAction</display-name>

<description>Search Action for employees</description>

</action>

 

参考:Struts程序员查询辞典 Jomes Holmes(孙燕等译)中国铁道出版社.

猜你喜欢

转载自bigdragon.iteye.com/blog/2192583
今日推荐