15、23_尚學堂馬士兵_Struts2_子產品包含
<struts>
<constant name="struts.devMode" value="true" />
<include file="login.xml" />
</struts>
可以将别的寫好的配置檔案直接包含到struts得配置檔案中,友善多人開發避免不必要的配置檔案沖突.
login.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">
<package name="login" extends="struts-default" namespace="/login">
<action name="login*" class="com.bjsxt.struts2.user.action.LoginAction{1}">
<result>/user_login_success.jsp</result>
</action>
</package>
16、24_尚學堂馬士兵_Struts2_預設Action
<package name="default" namespace="/" extends="struts-default">
<!-- 當配置檔案中沒有使用者要通路的Aciton的時候,會調用<default-action-ref 所定義的Action --處理錯誤頁面 -->
<default-action-ref name="index"></default-action-ref>
<action name="index">
<result>/default.jsp</result>
17、27_尚學堂馬士兵_Struts2_結果類型_result_type_1
ResultType的最常用的幾種配置:(四種配置分别代表了四種不同的跳轉方式)
<package name="resultTypes" namespace="/r" extends="struts-default">
<action name="r1">
<!--type不寫預設的為dispatcher:用伺服器跳轉跳轉到結果頁面--隻能跳轉到頁面,不能跳轉到Action -->
<result type="dispatcher">/r1.jsp</result>
<action name="r2">
<!--用戶端跳轉的方式跳轉到結果頁面 隻能跳轉到頁面,不能跳轉到Action -->
<result type="redirect">/r2.jsp</result>
<action name="r3">
<!--伺服器跳轉的方式跳轉到Action -->
<result type="chain">r1</result>
<action name="r4">
<!--用戶端跳轉的方式跳轉到Action -->
<result type="redirectAction">r2</result>
<!--當要跳轉的Action在别的包下的時候 應該這樣寫-->
<action name="r5">
<result type="china">
<parma name="actionName">dashboard</param>
<parma name="namespace">/sesure</param>
</result>
18、30_尚學堂馬士兵_Struts2_Global_Results_全局結果集
<package name="user" namespace="/user" extends="struts-default">
<!-- 配置全局的結果集:當傳回的result沒有配置的時候會執行全局結果集的配置-->
<global-results>
<result name="mainpage">/main.jsp</result>
</global-results>
<result>/index.jsp</result>
</action>
<!--關鍵字extends的使用:我想在下面的這個配置包中使用上面那個包中的結果集,那麼可以使用extends關鍵字繼承上一個包
<package name="admin" namespace="/admin" extends="user">
<action name="admin" class="com.bjsxt.struts2.user.action.AdminAction">
<result>/admin.jsp</result>
17、31_尚學堂馬士兵_Struts2_動态結果集_dynamic_result
可以在strtus.xml檔案中動态的指定傳回的結果集。
public class UserAction extends ActionSupport {
private int type;
private String r;
public String getR() {
return r;
}
public void setR(String r) {
this.r = r;
public int getType() {
return type;
public void setType(int type) {
this.type = type;
@Override
public String execute() throws Exception {
if(type == 1) r="/user_success.jsp";
else if (type == 2) r="/user_error.jsp";
return "success";
}
struts.xml檔案中的配置:
<package name="user" namespace="/user" extends="struts-default">
<action name="user" class="com.bjsxt.struts2.user.action.UserAction">
<!--可以用${屬性名}的方式取得Action中的屬性,在伺服器端判斷好相應的跳轉路徑然後存到變量裡 然後再struts.xml檔案中用這種方式取出來,可以極大的增加配置檔案的靈活性 -->
<result>${r}</result>
</action>
18、32_尚學堂馬士兵_Struts2_帶參數的結果集
通路連結格式:<a href="user/user?type=1">傳參數</a>
當從一個Action跳轉到另一個Action的時候,如果需要傳值并且是伺服器端的跳轉,沒有必要再struts.xml檔案result的跳轉路徑中進行傳值操作,因為多個伺服器端的跳轉,共享的是同一個值棧,可以直接取到,但是如果是用戶端的跳轉(redirect)的方式進行跳轉則需要進行如下的配置:
<!-- 用${}的方式是從值棧取值,注意:不是El表達式 -->
<result type="redirect">/user_success.jsp?t=${type}</result>
但是如果在jsp頁面取出傳輸的值用<s:property value="t"/>是取不到的,因為這種方式是在值棧裡取值而我們跳轉道德是一個jsp頁面不是一個Action是以值棧為空,但是我們可以在ActionContext中進行取值:<s:property value="#parameters.t"/>
15、23_尚學堂馬士兵_Struts2_子產品包含
<struts>
<constant name="struts.devMode" value="true" />
<include file="login.xml" />
</struts>
可以将别的寫好的配置檔案直接包含到struts得配置檔案中,友善多人開發避免不必要的配置檔案沖突.
login.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">
<package name="login" extends="struts-default" namespace="/login">
<action name="login*" class="com.bjsxt.struts2.user.action.LoginAction{1}">
<result>/user_login_success.jsp</result>
</action>
</package>
16、24_尚學堂馬士兵_Struts2_預設Action
<package name="default" namespace="/" extends="struts-default">
<!-- 當配置檔案中沒有使用者要通路的Aciton的時候,會調用<default-action-ref 所定義的Action --處理錯誤頁面 -->
<default-action-ref name="index"></default-action-ref>
<action name="index">
<result>/default.jsp</result>
</action>
17、27_尚學堂馬士兵_Struts2_結果類型_result_type_1
ResultType的最常用的幾種配置:(四種配置分别代表了四種不同的跳轉方式)
<package name="resultTypes" namespace="/r" extends="struts-default">
<action name="r1">
<!--type不寫預設的為dispatcher:用伺服器跳轉跳轉到結果頁面--隻能跳轉到頁面,不能跳轉到Action -->
<result type="dispatcher">/r1.jsp</result>
<action name="r2">
<!--用戶端跳轉的方式跳轉到結果頁面 隻能跳轉到頁面,不能跳轉到Action -->
<result type="redirect">/r2.jsp</result>
<action name="r3">
<!--伺服器跳轉的方式跳轉到Action -->
<result type="chain">r1</result>
<action name="r4">
<!--用戶端跳轉的方式跳轉到Action -->
<result type="redirectAction">r2</result>
<!--當要跳轉的Action在别的包下的時候 應該這樣寫-->
<action name="r5">
<result type="china">
<parma name="actionName">dashboard</param>
<parma name="namespace">/sesure</param>
</result>
18、30_尚學堂馬士兵_Struts2_Global_Results_全局結果集
<package name="user" namespace="/user" extends="struts-default">
<!-- 配置全局的結果集:當傳回的result沒有配置的時候會執行全局結果集的配置-->
<global-results>
<result name="mainpage">/main.jsp</result>
</global-results>
<result>/index.jsp</result>
</action>
<!--關鍵字extends的使用:我想在下面的這個配置包中使用上面那個包中的結果集,那麼可以使用extends關鍵字繼承上一個包
<package name="admin" namespace="/admin" extends="user">
<action name="admin" class="com.bjsxt.struts2.user.action.AdminAction">
<result>/admin.jsp</result>
17、31_尚學堂馬士兵_Struts2_動态結果集_dynamic_result
可以在strtus.xml檔案中動态的指定傳回的結果集。
public class UserAction extends ActionSupport {
private int type;
private String r;
public String getR() {
return r;
}
public void setR(String r) {
this.r = r;
public int getType() {
return type;
public void setType(int type) {
this.type = type;
@Override
public String execute() throws Exception {
if(type == 1) r="/user_success.jsp";
else if (type == 2) r="/user_error.jsp";
return "success";
}
struts.xml檔案中的配置:
<package name="user" namespace="/user" extends="struts-default">
<action name="user" class="com.bjsxt.struts2.user.action.UserAction">
<!--可以用${屬性名}的方式取得Action中的屬性,在伺服器端判斷好相應的跳轉路徑然後存到變量裡然後再struts.xml檔案中用這種方式取出來,可以極大的增加配置檔案的靈活性 -->
<result>${r}</result>
</action>
18、32_尚學堂馬士兵_Struts2_帶參數的結果集
通路連結格式:<a href="user/user?type=1">傳參數</a>
當從一個Action跳轉到另一個Action的時候,如果需要傳值并且是伺服器端的跳轉,沒有必要再struts.xml檔案result的跳轉路徑中進行傳值操作,因為多個伺服器端的跳轉,共享的是同一個值棧,可以直接取到,但是如果是用戶端的跳轉(redirect)的方式進行跳轉則需要進行如下的配置:
<!-- 用${}的方式是從值棧取值,注意:不是El表達式 -->
<result type="redirect">/user_success.jsp?t=${type}</result>
但是如果在jsp頁面取出傳輸的值用<s:property value="t"/>是取不到的,因為這種方式是在值棧裡取值而我們跳轉道德是一個jsp頁面不是一個Action是以值棧為空,但是我們可以在ActionContext中進行取值:<s:property value="#parameters.t"/>