Struts配置說明

1.struts入門示例

2.struts.xml配置

2.1 簡單配置介紹

<struts>
	<!-- name:包名稱,用於區分不用的包 -->
	<!-- extends:繼承其他包,struts-default定義了一系列攔截器操作 -->
	<!-- namespace:命名空間,一般/即可,http://localhost:8080/Struts02/命名空間值/studentAction -->
	<package name="student" extends="struts-default" namespace="/">
	
		<!-- 一個包下可以定義多個action -->
		<!-- name:action名稱,網址訪問時用到 -->
		<!-- class:action類的完整路徑 -->
		<!-- method:指定要調用action類的指定方法 -->
		<action name="studentAction" class="com.action.StudentAction" method="test">
			<!-- 一個action可以有多個result,根據name值和action方法返回值進行匹配指定result -->
			<!-- name:action類調用方法返回的結果值 -->
			<!-- result標籤中包含的值是跳轉到的頁面 -->
			<!-- type表示跳轉類型。
				dispathcher轉發視圖頁,默認值; 
				redirect重定向視圖頁
				redirectAction重定向action
				chain轉發action
				stream返回結果是流,一般用於ajax和文件下載
			-->
			<result name="success" type="dispathcher">/success.jsp</result>
		</action>
	</package>
</struts>

2.2 動態調用Action多個方法

  • 使用通配符調用指定Action指定方法
<!-- 網址:/Struts02/updateStudent  表示訪問StudentAction類的update()方法-->
<!-- 網址:/Struts02/addStudent  表示訪問StudentAction類的add()方法-->
<!-- 網址:/Struts02/xxxStudent  表示訪問StudentAction類的xxx()方法-->
                
<!-- action的name一般 “*類名” ,表示匹配以Student結尾的action,*一般代表方法名 -->
<!-- method屬性表示要執行的方法名,{1}表示*匹配的值 -->
<action name="*Student" class="com.action.StudentAction" method="{1}">
	<!-- 訪問StudentAction類的方法後可以匹配值{1}跳轉到指定頁面 -->
	<!-- 如果update方法返回success,則跳轉到update_success.jsp -->
	<!-- 如果add方法返回success,則跳轉到add_success.jsp -->
	<!-- 如果xxx方法返回success,則跳轉到xxx_success.jsp -->
	<result name="success">/{1}_success.jsp</result>			
</action>
  • 使用路徑調用指定Action類的指定方法
<struts>
	<!-- 開啓動態方法常量配置 -->
	<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
	<package name="student" extends="struts-default" namespace="/">
			
		<!-- 網址:/Struts02/student!update  表示訪問StudentAction類的update()方法 -->
		<!-- 網址:/Struts02/student!add  表示訪問StudentAction類的add()方法-->
        <!-- 網址:/Struts02/student!xxx  表示訪問StudentAction類的xxx()方法-->
        <!-- 路徑語法:action名!方法名       action名就是name值 -->
        <!-- 這裏不再需要設置method值 -->
		<action name="student" class="com.action.StudentAction" >			
			<result name="update_success">/update_success.jsp</result>	
			<result name="add_success">/add_success.jsp</result>	
			<result name="xxx_success">/xxx_success.jsp</result>			
		</action>
		
	</package>
</struts>

2.3 常量配置

  • 配置項參考struts2-core.jar→org.apache.struts2→default.properties
<struts>
     <!-- 把struts的框架的字符集編碼改成“UTF-8” -->
    <constant name="struts.i18n.encoding" value="UTF-8" />
    <!-- 把開發模式設爲true,頁面顯示的錯誤信息更直觀 -->
    <constant name="struts.devMode" value="true"/>
    <!-- 修改核心控制器攔截請求路徑的後綴名 -->
    <constant name="struts.action.extension" value="action,,"/>
</struts>

2.4 配置默認Action

<package name="student" extends="struts-default" namespace="/">
	<!-- 當在namespace下找不到Action時,會自動找default-action-ref指定的默認Action -->
	<default-action-ref name="defaultAction"></default-action-ref>
	<!-- 這裏action的name要與default-action-ref一致,代表默認Action -->
    <action name="defaultAction" class="com.action.DefaultAction" method="notFound">
         <result name="404">/404.jsp</result>
     </action>
     <!-- 此處省略其他Action -->
</package>

2.5 全局結果

<package name="default" namespace="/" extends="struts-default">
	<!-- 此處省略其他action -->
	<!-- 如果其他action中的result的name值與全局結果的name值相同時,優先匹配action的result -->
    <global-results>
        <result name="index" >/welcome.jsp</result>
    </global-results>
</package>

2.6 struts.xml分模塊開發

<struts>
	<!-- 主配置文件可以設置一些全局結果和默認Action -->
	<!-- 其他子模塊的配置需要用主配置的全局結果、默認Action等時,子模塊配置可以繼承主模塊配置的包名extends="struts-global" -->
	<package name="struts-global" namespace="/" extends="struts-default">
	</package>
	
	<!-- 引入其他子模塊的struts配置文件 -->
	<include file="struts_student.xml"></include>
	<include file="struts_grade.xml"></include>
</struts>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章