现在的位置: 首页 > 综合 > 正文

Struts配置文件初解

2011年01月21日 ⁄ 综合 ⁄ 共 3241字 ⁄ 字号 评论关闭
struts-config.xml是Struts的核心文件。该文件可配置各种组件,包括,FormBeans,Actions,ActionMappings,全局转发GlobalForwards,数据源DataSources及插件Plugin,这篇文件我结合在(Struts重构)构建一个简单的基于MVC模式的JavaWeb一文来说说Struts配置文件struts-config.xml的主要元素!
<form-beans>元素
<form-beans>元素允许配置多个ActionForm类,可以包含零个或多个<form-bean>子元素。其主要元素如下所示:
calssName :可选。指定和<form-bean>元素对应的配置类,默认值这org.apache.struts.config.FormBeanConfig,自定义的配置类必须扩展该类。
name:指定该ActionForm的惟一标识名,Struts框架用该标识来引用这个form bean,该属性必须填写!
type:指定ActionForm的完整类路径和类名,该属性必须填写!
例子:

<form-bean name="studentForm" type="struts.form.StudentForm" />

如果配置动态ActionForm(DynaActionForm),则还必须配置<form-bean>元素的<form-property>子元素,用来指定表单字段,
例子:

<form-bean name="dynaFormForm" type="org.apache.struts.action.DynaActionForm ">
      
<form-property name="userName" type="java.lang.String" />
      
<form-property name="userPwd" type="java.lang.String" />
</form-bean>

<action-mappings>元素
<action-mappings>元素帮助进行框架内部的流程控制,可以将 请求URI映射到Action类,将Action对象与ActionForm对象相关联。
<action-mappings>元素内可定义多个<action>子元素。<action>元素所描述的是特定的请求路径和一个相应的Action类之间的映射关系。Struts控制器会将请求中的URI路径与诸多<action>元素中的path属性相匹配,以选出一个特定的映射。其有以下属性:
attribute:设置和Action关联的form bean在request/session内的属性key,通过request/session的getAttribute(attribute)方法返回该form bean实例。
className:和<action>元素对应的配置元素。默认为org.apache.struts.action.ActionMapping
forward:指定局部转发项。
include:指定包含的URL路径。
input:指定表单输入页的URL路径。当表单验证失败时将请求转发到该URL。
name:指定同该Action关联的form bean的引用标识。
path:指定Action的访问路径,即该Action在引用中的标识名,以"/"开头。
parameter:指定允许调用该Action的参数。在Action类的execute()方法中调用ActionMapping对象的getParameter()方法来读取。
roles:指定允许调用该Action类关联的安全角色。多个角色之间用逗号分隔。
scope:指定同该Action类关联的form bean的存在范围。可选request和session,默认为session.
type:指定该Action类的完整类路径和类名。
unknown:若该属性为true,则可以处理用户发出的无效ActionURL.默认为false。
validate:指定是否调用form bean的validate()方法验证表单的数据。默认为true

另外<action>元素中可包含零个或多个<forward>子元素。<forward>子元素定义了转发动作。它的主要属性如下:
name:指定转向的标识名。
path:指定转向标识名所对应的转向页面
redirect:指定是转发还是重定向。
例:

<action-mappings >
      
<action    attribute="dynaFormForm" 
          input
="/dynaForm.jsp"
          name
="dynaFormForm"
          path
="/dynaFormForm"          
          scope
="request"
          validate
="true"
          type
="struts.action.LoginHandlerAction">
          
<forward name="success" path="/main.jsp" />
          
<forward name="fail" path="/register.jsp" />
      
</action>

<global-forwards>元素
<global-forwards>元素用于定义在整个应用程序内的全局转发。在该元素内可定义多个<forward>子元素。
例:

<!-- 全局转发 -->
  
<global-forwards>
      
<forward name="index" path="/index"></forward>
  
</global-forwards>

<message-resources>元素
  <message-resources>元素用于配置消息资源文件(Resources Bundle),以在应用客户端界面中输出本地化消息文本。其主要属性如下:
  className:指定和<form-bean>元素对应的配置类,默认值为org.apache.struts.config.MessageResourcesConfig
  factory:指定消息资源的工厂类,默认为org.apache.struts.util.PropertyMessageResourcesFactory
  key:指定资源文件存放在ServletContext对象中时使用的属性key。默认为Globals.MESSAGE_KEY定义的字符串常量
  null:指定MessageResources对未知消息的处理方式。若为true将返回空字符串,若为false则返回类似以"??global.label.missing???"字符串。默认为true。
  parameter:指定消息资源文件存放路径。
  例:

<!-- 资源文件 -->
  
<message-resources parameter="struts.ApplicationResources" />
            
<!--存放在struts包下.注意不要写成struts/ApplicationResources-->

<plug-in>元素
主要用于定义添加至struts应用中的插件
例:

    <!-- 验证插件 -->   
  
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    
<set-property property="pathnames"  value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
  
</plug-in>

抱歉!评论已关闭.