struts2配置文件詳解

本章將帶你經過一個Struts2應用程序所需的基本配置。在這裏,咱們將看到在一些重要的配置文件,將配置文件:web.xml ,struts.xml,struts-config.xml和struts.propertieshtml

使用web.xml和struts.xml的配置文件,並在前面的章節中,已經看到咱們的例子中曾使用這兩個文件,讓我解釋以及其餘文件。java

這是第一個配置文件,將須要配置,若是沒有一個模板或工具,可生成(如Eclipse或Maven2的)的幫助下開始。如下是web.xml文件中的內容,咱們用咱們的最後一個例子。node

<?xml version="1.0" encoding="UTF-8"?><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">
   
   <display-name>Struts 2</display-name>
   <welcome-file-list>
      <welcome-file>index.jsp</welcome-file>
   </welcome-file-list>
   
   <filter>
      <filter-name>struts2</filter-name>
      <filter-class>
         org.apache.struts2.dispatcher.FilterDispatcher      </filter-class>
   </filter>

   <filter-mapping>
      <filter-name>struts2</filter-name>
      <url-pattern>/*</url-pattern>
   </filter-mapping></web-app>


請注意,咱們Struts 2的過濾器映射爲/*, /*.action這意味着全部的URL將被解析struts的過濾器。咱們將覆蓋時,咱們將經過「註釋」一章。web

struts.xml 文件:

struts.xml文件中包含的配置信息,將爲動做開發被修改。這個文件能夠被用來覆蓋默認設置的應用程序,例如struts.devMode=false 和其餘設置中定義的屬性文件。這個文件能夠被文件夾WEB-INF/classes下建立 apache

讓咱們來看看在咱們struts.xml文件中建立的Hello World的例子在前面的章節中解釋。瀏覽器

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC
   "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
   "http://struts.apache.org/dtds/struts-2.0.dtd"><struts>
   <constant name="struts.devMode" value="true" />
   <package name="helloworld" extends="struts-default">
     
      <action name="hello" 
            class="com.yiibai.struts2.HelloWorldAction" 
            method="execute">
            <result name="success">/HelloWorld.jsp</result>
      </action>
      <-- more actions can be listed here -->   </package>
   <-- more packages can be listed here --></struts>

首先要注意的是DOCTYPE。全部的Struts配置文件須要有正確的doctype所示,咱們的小例子。 <struts>根標籤的元素,咱們聲明不一樣的包使用<package>標籤。 <package>容許分離和模塊化的配置。這是很是有用的,當有一個大項目,項目被劃分紅不一樣的模塊。app

也就是說,若是項目有三個域 - 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屬性可讓咱們看到更多的調試消息,在日誌文件中。yii

咱們定義動做標記對應的每個URL,咱們要訪問,咱們定義了一個類的execute()方法,將訪問時,咱們將訪問相應的URL。webapp

結果決定獲得執行動做後返回給瀏覽器。從操做返回的字符串應該是一個結果的名稱。以上,或者做爲一個「global」的結果,可包中的每個動做,結果被配置每次動做。結果有可選的名稱和類型屬性。默認名稱的值是「success」。

隨着時間的推移,struts.xml文件能夠逐步擴展,打破它包是模塊化的方式之一,但Struts提供了另外一種模塊化struts.xml文件。能夠將文件分割爲多個XML文件,並如下列方式將它們導入。

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd"><struts>
     <include file="my-struts1.xml"/>
     <include file="my-struts2.xml"/></struts>

其餘的配置文件,咱們尚未涉及到在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.

下面是示例struts-config.xml文件:

<?xml version="1.0" encoding="ISO-8859-1" ?><!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.0//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd"><struts-config>

   <!-- ========== Form Bean Definitions ============ -->
   <form-beans>
      <form-bean name="login" type="test.struts.LoginForm" />
   </form-beans>

   <!-- ========== Global Forward Definitions ========= -->
   <global-forwards>
   </global-forwards>

   <!-- ========== Action Mapping Definitions ======== -->
   <action-mappings>
      <action
         path="/login"
         type="test.struts.LoginAction" >

         <forward name="valid" path="/jsp/MainMenu.jsp" />
         <forward name="invalid" path="/jsp/LoginView.jsp" />
      </action>
   </action-mappings>

   <!-- ========== Controller Definitions ======== -->
   <controller 
      contentType="text/html;charset=UTF-8"
      debug="3"
      maxFileSize="1.618M"
      locale="true"
      nocache="true"/></struts-config>

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
相關文章
相關標籤/搜索