Struts2 配置文件
本章將帶你通過一個Struts2應用程序所需的基本配置。在這裏,我們將看到在一些重要的配置文件,將配置文件:web.xml ,struts.xml,struts-config.xml和struts.properties
使用web.xml和struts.xml的配置文件,並在前面的章節中,已經看到我們的例子中曾使用這兩個文件,讓我解釋以及其他文件。
web.xml 文件:
web.xml配置文件是一個J2EE的配置文件,決定如何處理元素的HTTP請求由servlet容器。嚴格來說它不是一個Struts2的配置文件,但它是Struts2的工作需要進行配置的文件。
如前所述,這個文件爲任何Web應用程序提供了一個切入點。 Struts2 應用程序的入口點,將是一個部署描述符(web.xml)中定義的過濾器。因此,我們將定義在web.xml中的FilterDispatcher是類的項。需要創建的文件夾的WebContent/ WEB-INF下web.xml文件。
這是第一個配置文件,將需要配置,如果沒有一個模板或工具,可生成(如Eclipse或Maven2的)的幫助下開始。以下是web.xml文件中的內容,我們用我們的最後一個例子。
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app\_2\_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app\_3\_0.xsd" id="WebApp_ID" version="3.0">
請注意,我們Struts 2的過濾器映射爲/*, /*.action這意味着所有的URL將被解析struts的過濾器。我們將覆蓋時,我們將通過「註釋」一章。
struts.xml 文件:
struts.xml文件中包含的配置信息,將爲動作開發被修改。這個文件可以被用來覆蓋默認設置的應用程序,例如struts.devMode=false 和其他設置中定義的屬性文件。這個文件可以被文件夾WEB-INF/classes下創建
讓我們來看看在我們struts.xml文件中創建的Hello World的例子在前面的章節中解釋。
首先要注意的是DOCTYPE。所有的Struts配置文件需要有正確的doctype所示,我們的小例子。
也就是說,如果項目有三個域 - business_applicaiton ,customer_application 和 staff_application,可以創建三個包和存儲相關的動作,在適當的包。包裝標籤具有以下屬性:
屬性
描述
name (required)
The unique identifier for the package
extends
Which package does this package extend from? By default, we use struts-default as the base package.
abstract
If marked true, the package is not available for end user consumption.
namesapce
Unique namespace for the actions
隨着name和value屬性恆定的標籤將被用於覆蓋default.properties中定義以下屬性,就像我們剛剛設置struts.devMode屬性。 Settingstruts.devMode屬性可以讓我們看到更多的調試消息,在日誌文件中。
我們定義動作標記對應的每一個URL,我們要訪問,我們定義了一個類的execute()方法,將訪問時,我們將訪問相應的URL。
結果決定得到執行動作後返回給瀏覽器。從操作返回的字符串應該是一個結果的名稱。以上,或者作爲一個「global」的結果,可包中的每一個動作,結果被配置每次動作。結果有可選的名稱和類型屬性。默認名稱的值是「success」。
隨着時間的推移,struts.xml文件可以逐步擴展,打破它包是模塊化的方式之一,但Struts提供了另一種模塊化struts.xml文件。可以將文件分割爲多個XML文件,並以下列方式將它們導入。
其他的配置文件,我們還沒有涉及到在struts-default.xml中。這個文件包含了Struts的標準配置設置,就不必去觸摸項目的這些99.99%設置。出於這個原因,我們不打算對這個文件介紹太多。如果有興趣,不妨看看到struts2的核心2.2.3.jar文件default.properties文件。
struts-config.xml 文件:
在struts-config.xml 配置文件是在Web客戶端組件的視圖和模型之間的鏈接,但99.99%不會有觸碰這些設置在項目中。基本配置文件包含以下主要內容:
SN
攔截 & 描述
1
struts-config
This is the root node of the configuration file.
2
form-beans
This is where you map your ActionForm subclass to a name. You use this name as an alias for your ActionForm throughout the rest of the struts-config.xml file, and even on your JSP pages.
3
global forwards
This section maps a page on your webapp to a name. You can use this name to refer to the actual page. This avoids hardcoding URLs on your web pages.
4
action-mappings
This is where you declare form handlers and they are also known as action mappings.
5
controller
This section configures Struts internals and rarely used in practical situations.
6
plug-in
This section tells Struts where to find your properties files, which contain prompts and error messages
下面是示例struts-config.xml文件:
struts-config.xml文件的更多詳細信息,請查看 Struts 文檔。
struts.properties 文件
此配置文件提供了一種機制來改變框架的默認行爲。 struts.properties配置文件內包含的屬性其實也可以被配置在web.xml中使用init-param中,以及在struts.xml的配置文件中使用恆定的標籤。但如果喜歡保持獨立和特定Struts,那麼可以創建這個文件的文件夾下的WEB-INF/classes。
在這個文件中配置的值將覆蓋默認值配置default.properties這是包含在struts2-core-x.y.z.jar 分佈。有幾個的屬性,可能會考慮改變使用struts.properties文件:
### When set to true, Struts will act much more friendly for developers struts.devMode = true ### Enables reloading of internationalization files struts.i18n.reload = true ### Enables reloading of XML configuration files struts.configuration.xml.reload = true ### Sets the port that the server is run on struts.url.http.port = 8080
這裏井號(#)開頭的行會被假定作爲註釋,它將被Struts 2忽略。