1. 程式人生 > >六、Struts2如何處理結果頁面的跳轉

六、Struts2如何處理結果頁面的跳轉

結果頁面的跳轉是配置在struts.xml檔案中的,配置後Struts2框架會根據響應類(Action)中的響應方法的返回值去配置檔案中找到跳轉的頁面或者其他處理Action.

兩種結果頁的宣告方式

1.全域性結果頁面
如果<package>包中的一些action都返回相同的結果,並且跳轉的頁面都是同一個JSP頁面,這樣就可以配置全域性的結果頁面。
全域性結果頁面針對的當前的包中的所有的Action,但是如果區域性還有結果頁面,會優先區域性的。
使用的標籤是<global-results>,例如:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package name="default" namespace="/" extends="struts-default"> <!-- 全域性跳轉結果頁配置 --> <global-results > <result name=
"success"
>
/suc.jsp</result> <result name="error">/error.jsp</result> </global-results> <action name="demo1" class="blog.csdn.net.mchenys.Demo1Action" > <!-- <result name="success">/suc.jsp</result> --> </action> <action name="demo2"
class="blog.csdn.net.mchenys.Demo2Action" >
<!-- <result name="success">/suc.jsp</result> --> </action> </package> </struts>

2.區域性結果頁面
區域性結果頁是單獨配置在Action標籤中你的,使用的是<result>標籤,前面的文章也介紹過改標籤有2個屬性,name屬性對應Action類的響應方法(或者說action標籤的method代表的方法)的返回結果,type代表的是頁面跳轉型別,後面會介紹幾個常用的跳轉型別。例如:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
	<package name="default" namespace="/" extends="struts-default">
		<action name="demo3" class="blog.csdn.net.mchenys.Demo3Action">
			<!-- 區域性跳轉結果頁配置 -->
			<result name="login">/login.jsp</result>
			<result name="save_ok">/list.jsp</result>
		</action>
	</package>
</struts>

結果頁面的型別

通過<result>標籤的type屬性配置,常見的結果型別可以去struts-default.xml中查詢,例如:
在這裡插入圖片描述
這裡介紹幾個常用的型別:

  • dispatcher:轉發,type的預設值, 只能用於Action—>JSP的轉發跳轉。
  • redirect:重定向,只能用於Action—>JSP的重定向跳轉。
  • chain:多個action之間轉發跳轉,從一個Action轉發到另一個Action, Action—>Action。
  • redirectAction:多個action之間重定向的跳轉,從一個Action重定向到另一個Action,Action—>Action。
  • stream:檔案下載時候使用的。