天天看點

struts2 result type= redirect redirectAction chain dispatcher等類型

struts.xml

struts2 result type= redirect redirectAction chain dispatcher等類型

<?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">

<!-- 

總結

dispatcher 可以轉發到web-inf目錄(預設)

redirect 不能重定向到web-inf目錄

chain鍊式轉發  不用寫param傳遞參數,系統會自動把上次的參數儲存傳遞

redirect隻能重定向到本namspace的action ,這裡不能使用param屬性

redirectaction可重定向到其他namspace的action ,這裡必須用type="redirectaction”

plaintext源碼顯示

 -->

<struts>

    <constant name="struts.devmode" value="true" />

<package name="struts1" namespace="/" extends="struts-default" >

<!-- dispatcher 可以轉發到web-inf目錄(預設) -->

  <action name="dispatcher_to_webinf" class="action.tiaozhuan"  method="dispatcher">

<result name="dispatcher">

 /web-inf/web-inf.jsp

</result>

</action>

<!-- redirect 不能重定向到web-inf目錄 -->

 <action name="redirect_to_webinf" class="action.tiaozhuan"  method="redirect">

<result name="redirect" type="redirect">

<!--第一種  帶參數重定向  直接寫在連結裡-->

 <!-- <action name="param_redirect" class="action.tiaozhuan"  method="param_redirect">

<result name="param_redirect" type="redirect">

  /index1.jsp?id=${id}

 <param name="username1">${username1}</param>

-->

<!--第二種 帶參數重定向  在param中寫  -->

<action name="param_redirect" class="action.tiaozhuan"  method="param_redirect">

 <param name="location">/index1.jsp</param>

 <param name="id">${id}</param>

 <!-- chain鍊式轉發  不用寫param傳遞參數,系統會自動把上次的參數儲存傳遞-->

<action name="chain" class="action.tiaozhuan"  method="chain">

<result name="chain" type="chain">

 <param name="actionname">chain1</param>

<!--  <param name="username">${username}</param>

      <param name="username1">${username1}</param>

  -->

<action name="chain1" class="action.tiaozhuan"  method="chain1">

<result name="chain1">

 /index1.jsp

<!-- redirect隻能重定向到本namspace的action ,這裡不能使用param屬性-->

<action name="redirectaction" class="action.tiaozhuan"  method="redirectaction">

<result name="redirectaction" type="redirect">

   dispatcher_to_webinf

<!-- redirectaction可重定向到其他namspace的action ,這裡必須用type="redirectaction"-->

<action name="redirectotheraction" class="action.tiaozhuan"  method="redirectotheraction">

<result name="redirectotheraction" type="redirectaction">

   <param name="actionname">other_namespace</param>

   <param name="namespace">/lhy</param>

<!-- plaintext源碼顯示 -->

<action name="plaintext" class="action.tiaozhuan" method="plaintext">

<result name="plaintext" type="plaintext">

<param name="location">/index1.jsp</param>

<param name="charset">utf-8</param>

</package>

  <package name="struts2" namespace="/lhy" extends="struts-default" >

 <action  name="other_namespace" class="action.tiaozhuan"  method="other_namespace">

     <result name="other_namespace">/index1.jsp</result>

  </action>

</struts>

jsp頁面

<body>

    <a href="dispatcher_to_webinf">轉發到webinf</a><br/>

    <a href="redirect_to_webinf">重定向到webinf</a><br/>

    <a href="chain">chain鍊式轉發</a><br/>

    <a href="redirectaction">redirectaction重定向到action</a><br/>

     <a href="redirectotheraction">redirectotheraction重定向到其他namespace的action</a><br/>

      <a href="plaintext">plaintext源碼</a><br/>

      <a href="lhy/other_namespace">lhy namespace下的action</a><br/>

       <a href="param_redirect?id=123">帶參數的重定向</a><br/>

  </body>

java action代碼

package action;

import com.opensymphony.xwork2.actionsupport;

public class tiaozhuan extends actionsupport{

private string username;

private string username1;

private string id;

public string dispatcher()

{

return "dispatcher";

}

public string redirect()

system.out.println("redirect重定向jsp");

return "redirect";

public string redirectaction()

system.out.println("redirectaction重定向action");

return "redirectaction";

public string chain()

system.out.println("chain開始鍊式轉發");

username="lhy";

username1="wxl";

return "chain";

public string chain1()

system.out.println("chain轉發後的值"+username+" "+username1);

return "chain1";

public string plaintext()

system.out.println("plaintext源程式");

return "plaintext";

system.out.println("源碼顯示");

public string redirectotheraction()

system.out.println("開始重定向到其他的的namespace");

return "redirectotheraction";

public string other_namespace()

system.out.println("已經重定向到其他的namespace");

return "other_namespace";

public string param_redirect()

id="456";

system.out.println("帶參數的重定向");

return "param_redirect";

public string getusername() {

return username;

public void setusername(string username) {

this.username = username;

public string getusername1() {

return username1;

public void setusername1(string username1) {

this.username1 = username1;

public string getid() {

return id;

public void setid(string id) {

this.id = id;