SSH學習之Struts2中的配置文件

回憶

在SSH學習系列的SSH學習之Struts2的第一個Action中介紹了Struts2的第一個入門的action,如果是初學的可以不需要深究其中的某些概念,我會在接下來的內容介紹。

位置

Struts2的配置文件struts.xml文件的位置一般默認是在src目錄下的,如果想要改變其存放的路徑,就需要在web.xml中進行配置,否則就會報錯。但是在配置的時候除了將改變後的路徑。但是,必須要也要指定struts-default.xmlstruts-plugin.xml(struts-plugin.xml這是配插件的,如果沒使用插件,這個也可以不配置)。
   <!-- 配置Struts2過濾器 -->
  <filter>
  	<filter-name>struts2</filter-name>
  	<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  	<init-param>
  		<param-name>config</param-name>
  		<param-value>struts-default.xml,config/struts.xml,struts-plugin.xml</param-value>
  	</init-param>
  </filter>
  <filter-mapping>
  	<filter-name>struts2</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>


名稱

Struts框架的配置文件名稱必須是固定的,struts.xml。

package標籤

  • name屬性name值跟功能本身是沒有相關聯繫的;在一個struts.xml配置文件中可以有多個package標籤,但是name值必須不同。
  • extends屬性extends屬性值是固定的,其值爲struts-default。只有寫明瞭該屬性,在package中的類纔有action功能(也就是纔有訪問的功能)。值得注意的是如果有其他的package繼承了另一個package,那麼最頂級的那個package必須繼承struts-default。
  • namespace屬性默認值是/,可以不寫明,但是推薦初學者寫明。其值和action標籤中的name值構成action的訪問路徑。

action標籤

  • name屬性name屬性值就是訪問action的路徑,其值和namespace屬性值構成訪問路徑。一個package標籤中可以有多個action標籤,但是name值是唯一的。
  • class屬性class屬性值就是action的全路徑,包名+類名。
  • method屬性默認值是execute,可以自定義一個值(值就是action裏的方法名),指明action的執行方法。

result標籤

result標籤根據方法的返回值配置到不同的路徑中去,包括頁面跳轉和action跳轉等等。

  • name屬性其值是方法的返回值,也就是method屬性中指定的方法。
  • type屬性其值表示如何到路徑中去(重定向或重轉發)。默認值是重轉發。
    • 默認值是dispatcher,重轉發(一次請求,地址欄不變),針對跳轉頁面的配置
    • redirect,重定向(兩次請求,地址欄路徑改變),針對跳轉頁面的配置
    • chain,轉發action,一般不使用該值轉發到其他action,因爲存在緩存問題,針對跳轉action的配置
    • redirectAction重定向action,針對跳轉action的配置

constant標籤

constant標籤用來配置或修改Struts2框架裏默認的常量的,Struts2中默認常量的配置是在struts-default.xml(struts2-core-xx.jar)文件中,
比如字符編碼等。以下是一些常用的常量設置。
  • struts.i18n.encoding,指明表單提交數據的編碼格式(post和get都可以,這與servlet不同,post可以直接指定編碼,get需要進行編碼轉換)。
  • struts.devMode,是否使用struts的開發模式。開發模式會有更多的調試信息。默認值爲false(生產環境下使用),開發階段最好打開。
  • struts.action.extension,指定被struts2處理的請求後綴類型。多個後綴名用逗號隔開。
在實際開發中可能還需要設置其他的一些常量,大家可以參看Struts2的API。

多餘的話

 這是我的一些理解了,希望見諒奮鬥





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章