struts-config.xml是Struts的核心文件。该文件可配置各种组件,包括,FormBeans,Actions,ActionMappings,全局转发GlobalForwards,数据源DataSources及插件Plugin,这篇文件我结合在一文来说说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.ActionMappingforward:指定局部转发项。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>