SSH整合之Struts.xml 常用的引數
阿新 • • 發佈:2019-02-19
Struts.xml常用的引數
1、<include>
利用include標籤,可以將一個struts.xml配置檔案分割成多個配置檔案,然後在struts.xml中使用<include>標籤引入其他配置檔案。
比如一個購物程式,可以把使用者配置、商品配置、訂單配置分別放在3個配置檔案user.xml、goods.xml和order.xml中,然後在struts.xml中將這3個配置檔案引入:
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.3.dtd"> <struts> <include file="user.xml"/> <include file="goods.xml"/> <include file="order.xml"/> </struts>
user.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.3.dtd"> <struts> <package name="cost" namespace="/cost" extends="struts-default"> <action name="findEmp" class="findEmpAction" method="load"> <result name="success">login.jsp</result> </action> </package> </struts>
2、<constant>
所有在struts.properties檔案中定義的屬性,都可以配置在struts.xml檔案中。而在struts.xml中,是通過<constant>標籤來進行配置的:
<?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.3.dtd"> <struts> <!--設定開發模式--> <constant name="struts.devMode" value="true"/> <!--設定編碼形式為utf-8--> <constant name="struts.i18n.encoding" value="utf-8"/> <!--省略其他配置資訊--> </struts>
3.<package>
在Struts2框架中是通過包來管理配置資訊的.
<!--name:包名,作為其它包應用本包的標記
extends:通常配置struts.xml的時候,都繼承一個名為“struts-default.xml”的包,這是struts2中內建的包,非必須
namespace:設定包的名稱空間,主要是針對大型專案中Action的管理,更重要的是解決Action重名問題,因為不在同一個名稱空間的Action可以使用相同的Action名的,非必須
Struts2中如果沒有為某個包指定名稱空間,該包使用預設的名稱空間,預設的名稱空間總是""。
當設定了名稱空間為“/”,即指定了包的名稱空間為根名稱空間時,此時所有根路徑下的Action請求都會去這個包中查詢對應的資源資訊。
假若前例中路徑為http://localhost:8080/login.action則所有http://localhost:8080/*.action都會到設定為根名稱空間的包中尋找資源。
-->
<!-- 如果不用namespace,則訪問的URL為http://localhost:8080/findEmp.action-->
<package name="cost" extends="struts-default">
<action name="findEmp" class="findEmpAction" method="load">
<result name="success">index.jsp</result>
</action>
</package>
<!-- 如果用namespace,則訪問的URL為http://localhost:8080/cost/findEmp.action-->
<package name="cost" namespace="/cost" extends="struts-default">
<action name="findEmp" class="findEmpAction" method="load">
<result name="success">index.jsp</result>
</action>
</package>
4.<action>與<result>
<package name="cost" namespace="/cost" extends="struts-default">
<!-- action中
由於使用Spring來管理Action,因此需要通過Spring容器來建立Action,因此class屬性指定的是元件ID。
name:請求的Action名稱
class:Action處理類對應具體路徑,非必須寫
method:指定Action中的方法名,如果沒有指定method則預設執行Action中的execute方法,非必須寫
converter:指定Action使用的型別轉換器,非必須寫
-->
<action name="findEmp" class="findEmpAction" method="load">
<!-- result中
name:對應Action返回邏輯檢視名稱,預設為success,非必須寫
type:返回結果型別,預設為dispatcher,非必須寫
下面語句意為:返回success,就跳轉到index.jsp頁面
-->
<result name="success">index.jsp</result>
</action>
</package>
4.1隨著result的增加,struts.xml檔案也會隨之變得越來越複雜。那麼就可以使用萬用字元來簡化配置:
例如下面這個案例:
public class Test {
public String test1(){
return "result1";
}
public String test2(){
return "result2";
}
public String test3(){
return "result3";
}
}
Struts.xml的配置為:
<package name="cost" namespace="/cost" extends="struts-default">
<action name="test*" class="findEmpAction"{1}">
<result name="result{1}">/result{1}.jsp</result>
</action>
</package>