SSH框架之Struts的struts.xml配置檔案詳解
阿新 • • 發佈:2019-01-06
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>