真的骄傲梦想家园
专业源于兴趣和努力

第二章 认识PStruts的配置文件

  上一篇静煊架构核心组件之一——PStruts(原NStruts2.0)倾情发布,描述了PStruts的由来,并提供有源码和Demo下载,这章将讲解PStruts配置文件各功能的使用。

  配置文件是核心内容的一部分,PStruts2.0支持多配置文件共同协作。在PStruts中,配置文件不是必需的,如果有配置文件,就必需要有一个主配置文件。主配置文件的名字叫“pstruts.xml”,保存在应用程序的根目录下。在配置文件中,有几种类型的结点只有在主配置文件中才会生效。

1.         <includes/>includes结点用于配置其它子配置文件的路径,用法如下:

 

<includes>

   
<include file=”nstruts-1.xml”/>

……

</includes
>


    

结点属性file是子配置文件的路径。

2.         <assemblys/>assemblys结点用于配置要使用到的程序集信息,用法如下:

 

<assemblys>

<assembly name=”assembly” path=”com.xxx.xxx”/>

</assemblys>


    

结点属性name是程序集在配置文件中使用的名字,path是程序集的路径。

 

3.         <global-results/>global-results结点用于配置全局的重定向映射,用法如下:

 

<global-results>

<result name=”success”>Default.aspx</result>

</global-results>


 

result结点属性nameAction中的Execute方法返回值匹配,实现自动重定向。 

4.         <reflesh/>reflesh结点用于提示框架是否自动刷新配置文件,这个结点在开发过程中或在程序运行过程中修改了

  配置文件后能自动刷新内存中的配置文件信息,用法如下:

  

<reflesh auto=”true”/>或<reflesh auto=”false”/>

  

结点属性auto提示是否自动刷新内存中已经存在的配置文件信息。

         下面介绍的结点可以在所有的配置文件中出现,相同的结点会被后面定义的结点所覆盖,结点中使用到类名均是类的全名(即包含命名空间)。

 

1.         <forms/>结点,用于配置保存表单数据的实体类,这个结点并不是必需的,表单数据可以直接保存在Action中。

  如果表单数据比较多或比较复杂时,推荐使用单独的实体类保存表单数据。用法如下:

  

<forms>

<form name=”form1” assembly=”assembly1” class=”xxx.xxx”/>

</forms>

 

 

结点属性nameform的使用名,属性assemblyassemblys结点配置的程序集使用名,属性classform实体类的全名。

 

2.         <models/>结点,用于配置实体类,向Action提供对象依赖注入。用法如:

 

<models>

<model name=”model1” assembly=”assembly1” class=”xxx.xxx”/>

</models>


 

结点属性name是实体类的使用名,属性assemblyassemblys结点配置的程序集使用名,属性class是实体类的全名。

3.         <actions/>结点,是配置文件的核心结点,用于配置页面发出的action请求的业务逻辑。用法如下:

 

<actions>
<action name=”action1” assembly=”assembly1” form=”form1” class=”xxx.xxx” >
  
<result name=”success”>/Success.aspx</result>
   
</action>
</actions>


    

  结点属性nameAction的使用名,属性assemblyassemblys结点配置的程序集使用名,属性classAction类的全名,属性form是设置使用form保存表单数据,是可选属性。子结点<result/><global-results/>结点的子结点相同,用于配置Action的重定向路径,如果没有添加相应的<result/>子结点,则查找<global-results/>结点的<result/>子结点,如果还是没有匹配的<result/>结点,程序则返回到调用方法体。如果<result/>结点与<global-results/>结点的子结点重名,则优先使用Action<result/>子结点。

4.         <iocs/>结点,用于配置Action的依赖注入,也只有Action才能配置依赖注入。用法如下:

  

<iocs>

  
<ioc name=”action1”>

  
<property name=”ObjectDao”>

  
<ref name=”model1”/>

  
</property>

  
<property name=”ConstVarList”>

  
<const value=”x”/>

         
<const value=”x”/>

  
</property>

  
</ioc>

  
</iocs>


 结点中,ioc子结点属性name是要依赖注入的action使用名,property子结点属性name对应action实例的属性名,是区分大小写的,ref是对象注入,

属性name,是model使用名,const是常量注入,属性value是注入的值。依赖注入支持混合注入,泛型和非泛型注入,暂时还不支持字典注入。 


我要崩溃了,一发表文章,格式就全乱套了。

 

 


posted on 2008-10-29 20:37  真的骄傲  阅读(1275)  评论(4编辑  收藏  举报