Posted on 2007-06-02 10:15
筱筱 閱讀(1099)
評論(0) 編輯 收藏 所屬分類:
Struts學習日記
Struts配置文件struts-config.xml
該文件可配置各種組件,包括 form bean,Actions,ActionMappings,全局轉發GlobalForwards,數據源DataSource及插件Plugins。
例如:
<struts-config>
<form-beans>
<form-bean name="loginAction" type="login.loginActionForm" />
</form-beans>
<action-mappings>
<action name="loginActionForm" type="login.loginAction"
validate="false" input="/login.jsp"
scope="request" path="/loginAction" >
<forward name="Success" path="/main.jsp"/>
<forward name="Fail" path="/register.jsp"/>
</action>
</action-mappings>
</struts-config>
在此例中,根元素是<struts-config>,它包含兩個主要的元素<form-beans>和<action-mappings>,分別描述了系統中的ActionForm對象和Action對象。
struts-config.xml的主要元素及作用如下:
·<struts-config>:根元素
·<form-beans>:描述一組ActionForm對象
·<action-mappings>:描述一組Action對象
·<global-forwards>:定義在整個應用程序內可見的全局轉發
·<data-source>:定義數據源
·<global-exception>:定義全局異常
·<controller>:用于配置控制類
·<message-resources>:用于配置消息資源包
·<plug-in>:用于定義添加至Struts應用中的插件
1.<form-beans>元素(用于描述ActionForm對象)
<form-beans>元素允許配置多個ActionForm類。它可包含零個或多個<form-bean>子元素。
<form-bean>元素的主要屬性如下:
·className:可選,指定和<form-bean>元素對應的配置類,默認值為org.apache.struts.config.FormBeanConfig,自定義的配置類必須擴展該類。
·name:指定該ActionForm的唯一標識,Struts框架用該標識來引用這個form bean,該屬性必須指定。
·type:指定ActionForm的完整類路徑和類名,該屬性必須指定。
如果配置了動態ActionForm(DynaActionForm),則還必須配置<form-bean>元素的<form-property>子元素,用來指定表單字段。
2.<action-mappings>元素(用于描述Action對象)
<action-mappings>元素幫助進行框架內部的流程控制,可將請求URI映射到Action類,將Action對象與ActionForm對象相關聯。
<action-mappings>元素內可以定義多個<action>子元素。<action>元素所描述的是特定的請求路徑和一個相應Action類之間的映射關系。Struts控制器會將請求中的URI路徑與諸多<action>元素中的path屬性相匹配,以選出一個特定的映射。
<action-mappings>元素的主要屬性如下:
·attribute:設置和Action關聯的forn bean在request/session內的屬性key,通過request/session的getAttribute(attribute)方法返回該form bean的實例。
·name:指定同該Action關聯的form bean的引用標識。
·type:指定該Action類的完整類路徑和類名。
·validate:指定是否調用form bean的validate()方法驗證表單的數據,默認為true。
·input:指定表單輸出頁面的URL路徑,當表單驗證失敗時將請求轉發到該URL。
·scope:指定同該Action類關聯的forn bean的存在范圍,可選request和session,默認為session。
·path:指定Action的訪問路徑,即該Action在引用中的標識名,以“/”開頭。
<action>元素中可包含零個或多個<forward>子元素,<forward>子元素定義了轉發動作,它的主要屬性如下所示:
·name:指定轉向標識名。
·path:指定轉向標識名所對應的轉向頁面。
·redirect:指定是轉發還是重定向。
3.<global-forwardvs>元素
<global-forwards>元素用來定義在整個應用程序內的全局轉發,在該元素內可以定義多個<forward>子元素。例如:
<global-forwards>
<forward name="Success" path="/main.jsp"/>
<forward name="Fail" path="/register.jsp"/>
</global-forwards>
4.<message-resources>元素
<message-resources>元素用于配置消息資源文件(Resource Bundle),以在應用的客戶端界面中輸出本地化消息文本。例如:
<mesasge-resources key="application" parameter="ApplicationResources"/>
該語句指定了一個叫ApplicationResources.properties的消息資源文件或屬性文件。
<message-resources>元素的屬性如下:
·className:指定和<form-bean>元素對應的配置類,默認值為org.apache.struts.config.MessageResourcesConfig
·factory:指定消息資源的工廠類,默認為org.apache.struts.uitl.PropertyMessageResourcesFactory
·key:指定資源文件存放在ServletContext對象中時使用的屬性key,默認值為Globals.MESSAGE_KEY定義的字符串常量。
·null:指定MessageResources對未知消息的處理方式,若為true將返回空字符串,若為false則返回類似“???global.label.missing???”的字符串,默認值為true。
·parameter:指定消息資源文件存放的路徑。