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">
<!--
總結
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;