1. 程式人生 > >SSH框架之Struts的struts.xml配置檔案詳解

SSH框架之Struts的struts.xml配置檔案詳解

struts.xml配置檔案詳解

方式一:只使用一個struts.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">
<!-- 
    <?xml  ?>中的為處理指令,DOCTYPE為文件型別宣告,struts為指令根節點,PUBLIC代表為網路上的資源,
    uri:"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    url: "http://struts.apache.org/dtds/struts-2.0.dtd"
            http://struts.apache.org/dtds/struts-2.0.dtd只要上一次網會自動下載該dtd檔案,
            並且會自動快取到MyEclipse中,dtd為約束檔案
    1~4行為規定好的約束條件  -->
<struts> <!-- <struts></struts>下可以定義多個package package 定義一個包。包的作用:管理action (通常,一個業務模組用一個包) name 包的名字,可以任意取, 但是包名不能重複,一旦重複,啟動時即報錯 extends 當前包繼承自哪個包, 在struts中,包一定繼承struts-default struts-default是在struts-default.xml中定義的包 abstract="true",表示該包為抽象包,抽象包中不能含有action的定義,否則執行時期報錯 只有當前包希望被其它包繼承的時候才為true,如: <package name="basePackage" extends="struts-default" abstract="true"></package> <package name="xxxx" extends="basePackage" namespace 名稱空間,預設為'/',作為路徑的一部分 訪問路徑= http://localhost:8080/專案/名稱空間/Struts中action標籤的name屬性 -->
<package name="xxxx" extends="struts-default" abstract="false"> <!-- action 配置請求路徑與Action類的對映關係 name 請求路徑名稱 class 請求處理的action類的全名 method 請求處理的方法 converter 轉換器(使用較少) --> <!--name的值為訪問路徑,class的值為訪問路徑對應的Action,method的值為對應Action中的方法 -->
<action name="hello" class="sram.action.HelloAction" method="execute"> <!-- result name action處理方法返回值 type 跳轉的結果型別 標籤體中指定跳轉的頁面 --> <!--name的值為Action方法返回的標記,type的值為跳轉的結果型別(預設為dispatcher(轉發)) --> <result name="success" type="dispatcher">/success.jsp</result> </action> <!-- 這裡action的name值要與對應的jsp檔案(login.jsp)的 action="${pageContext.request.contextPath }/login"值一致 --> <action name="login" class="sram.execute.UserAction" method="login"> <!-- name的值為Action方法返回的標記,type的值為跳轉的結果型別(預設為dispatcher(轉發)) --> <result name="login" type="dispatcher">/index.jsp</result> </action> </package> </struts>

方式二:使用多個struts.xml配置檔案

為什麼會使用多個配置檔案?
答:不同業務放在同一個配置檔案下,難免有一些混亂、讓人看的不太清晰。

1、子配置檔案沒有什麼變化,只是位置變為了放在每個包下。
2、總配置檔案,在src/struts.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="sram/a_package/a.xml"></include> 
    <include file="sram/b_package/b.xml"></include> 
</struts>