马士兵struts2学习笔记(详细版)

  1. 1523_尚学堂马士兵_Struts2_模块包含   
  2. <struts>   
  3.     <constant name="struts.devMode" value="true" />   
  4.     <include file="login.xml" />   
  5. </struts>   
  6. 可以将别的写好的配置文件直接包含到struts得配置文件中,方便多人开发避免不必要的配置文件冲突.   
  7. login.xml   
  8. <?xml version="1.0" encoding="UTF-8" ?>   
  9. <!DOCTYPE struts PUBLIC   
  10.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
  11.     "http://struts.apache.org/dtds/struts-2.0.dtd">   
  12.   
  13. <struts>   
  14.     <package name="login" extends="struts-default" namespace="/login">   
  15.         <action name="login*" class="com.bjsxt.struts2.user.action.LoginAction{1}">   
  16.             <result>/user_login_success.jsp</result>   
  17.         </action>   
  18.     </package>   
  19. </struts>   
  20.   
  21. 1624_尚学堂马士兵_Struts2_默认Action   
  22. <package name="default" namespace="/" extends="struts-default">   
  23.          <!-- 当配置文件中没有用户要访问的Aciton的时候,会调用<default-action-ref 所定义的Action --处理错误页面 -->   
  24.         <default-action-ref name="index"></default-action-ref>   
  25.         <action name="index">   
  26.             <result>/default.jsp</result>   
  27.         </action>   
  28.     </package>   
  29.   
  30. 1727_尚学堂马士兵_Struts2_结果类型_result_type_1   
  31.     ResultType的最常用的几种配置:(四种配置分别代表了四种不同的跳转方式)   
  32.      <package name="resultTypes" namespace="/r" extends="struts-default">   
  33.         <action name="r1">   
  34.                   <!--type不写默认的为dispatcher:用服务器跳转跳转到结果页面--只能跳转到页面,不能跳转到Action -->   
  35.             <result type="dispatcher">/r1.jsp</result>   
  36.         </action>   
  37.            
  38.         <action name="r2">   
  39.                   <!--客户端跳转的方式跳转到结果页面  只能跳转到页面,不能跳转到Action  -->   
  40.             <result type="redirect">/r2.jsp</result>   
  41.         </action>   
  42.            
  43.         <action name="r3">   
  44.                   <!--服务器跳转的方式跳转到Action -->   
  45.             <result type="chain">r1</result>   
  46.         </action>   
  47.            
  48.         <action name="r4">   
  49.                   <!--客户端跳转的方式跳转到Action -->   
  50.             <result type="redirectAction">r2</result>   
  51.         </action>   
  52. <!--当要跳转的Action在别的包下的时候 应该这样写-->   
  53.               <action name="r5">   
  54.                <result type="china">   
  55.                    <parma name="actionName">dashboard</param>   
  56.                    <parma name="namespace">/sesure</param>   
  57.                </result>   
  58.         </action>   
  59.   
  60. 1830_尚学堂马士兵_Struts2_Global_Results_全局结果集   
  61.  <package name="user" namespace="/user" extends="struts-default">   
  62.  <!-- 配置全局的结果集:当返回的result没有配置的时候会执行全局结果集的配置-->   
  63.         <global-results>   
  64.             <result name="mainpage">/main.jsp</result>   
  65.         </global-results>   
  66.            
  67.         <action name="index">   
  68.             <result>/index.jsp</result>   
  69.         </action>     
  70.     </package>   
  71. <!--关键字extends的使用:我想在下面的这个配置包中使用上面那个包中的结果集,那么可以使用extends关键字继承上一个包   
  72. <package name="admin" namespace="/admin" extends="user">   
  73.         <action name="admin" class="com.bjsxt.struts2.user.action.AdminAction">   
  74.             <result>/admin.jsp</result>   
  75.         </action>   
  76.     </package>   
  77.   
  78. 1731_尚学堂马士兵_Struts2_动态结果集_dynamic_result   
  79. 可以在strtus.xml文件中动态的指定返回的结果集。   
  80. public class UserAction extends ActionSupport {   
  81.     private int type;   
  82.        
  83.     private String r;   
  84.   
  85.     public String getR() {   
  86.         return r;   
  87.     }   
  88.   
  89.     public void setR(String r) {   
  90.         this.r = r;   
  91.     }   
  92.   
  93.     public int getType() {   
  94.         return type;   
  95.     }   
  96.   
  97.     public void setType(int type) {   
  98.         this.type = type;   
  99.     }   
  100.   
  101.     @Override  
  102.     public String execute() throws Exception {   
  103.         if(type == 1) r="/user_success.jsp";   
  104.         else if (type == 2) r="/user_error.jsp";   
  105.         return "success";   
  106.     }   
  107. }   
  108. struts.xml文件中的配置:   
  109. <package name="user" namespace="/user" extends="struts-default">   
  110.            
  111.         <action name="user" class="com.bjsxt.struts2.user.action.UserAction">   
  112. <!--可以用${属性名}的方式取得Action中的属性,在服务器端判断好相应的跳转路径然后存到变量里 然后再struts.xml文件中用这种方式取出来,可以极大的增加配置文件的灵活性 -->   
  113.             <result>${r}</result>   
  114.         </action>        
  115.     </package>   
  116.   
  117.   
  118. 1832_尚学堂马士兵_Struts2_带参数的结果集   
  119. 访问链接格式:<a href="user/user?type=1">传参数</a>   
  120. public class UserAction extends ActionSupport {   
  121.     private int type;   
  122.        
  123.     public int getType() {   
  124.         return type;   
  125.     }   
  126.   
  127.     public void setType(int type) {   
  128.         this.type = type;   
  129.     }   
  130.   
  131.     @Override  
  132.     public String execute() throws Exception {   
  133.         return "success";   
  134.     }   
  135.   
  136. }   
  137.      当从一个Action跳转到另一个Action的时候,如果需要传值并且是服务器端的跳转,没有必要再struts.xml文件result的跳转路径中进行传值操作,因为多个服务器端的跳转,共享的是同一个值栈,可以直接取到,但是如果是客户端的跳转(redirect)的方式进行跳转则需要进行如下的配置:   
  138.  <package name="user" namespace="/user" extends="struts-default">   
  139.         <action name="user" class="com.bjsxt.struts2.user.action.UserAction">   
  140.                   <!-- ${}的方式是从值栈取值,注意:不是El表达式 -->   
  141.             <result type="redirect">/user_success.jsp?t=${type}</result>   
  142.         </action>        
  143.     </package>   
  144. 但是如果在jsp页面取出传输的值用<s:property value="t"/>是取不到的,因为这种方式是在值栈里取值而我们跳转道德是一个jsp页面不是一个Action所以值栈为空,但是我们可以在ActionContext中进行取值:<s:property value="#parameters.t"/>  

1523_尚学堂马士兵_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">

 

<struts>

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

</struts>

 

1624_尚学堂马士兵_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>

    </package>

 

1727_尚学堂马士兵_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>

     

      <action name="r2">

                  <!--客户端跳转的方式跳转到结果页面  只能跳转到页面,不能跳转到Action  -->

        <result type="redirect">/r2.jsp</result>

      </action>

     

      <action name="r3">

                  <!--服务器跳转的方式跳转到Action -->

        <result type="chain">r1</result>

      </action>

     

      <action name="r4">

                  <!--客户端跳转的方式跳转到Action -->

        <result type="redirectAction">r2</result>

      </action>

<!--当要跳转的Action在别的包下的时候 应该这样写-->

              <action name="r5">

               <result type="china">

                   <parma name="actionName">dashboard</param>

                   <parma name="namespace">/sesure</param>

               </result>

      </action>

 

1830_尚学堂马士兵_Struts2_Global_Results_全局结果集

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

 <!-- 配置全局的结果集:当返回的result没有配置的时候会执行全局结果集的配置-->

      <global-results>

       <result name="mainpage">/main.jsp</result>

      </global-results>

     

      <action name="index">

       <result>/index.jsp</result>

      </action> 

    </package>

<!--关键字extends的使用:我想在下面的这个配置包中使用上面那个包中的结果集,那么可以使用extends关键字继承上一个包

<package name="admin" namespace="/admin" extends="user">

      <action name="admin" class="com.bjsxt.struts2.user.action.AdminAction">

       <result>/admin.jsp</result>

      </action>

    </package>

 

1731_尚学堂马士兵_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>     

    </package>

 

 

1832_尚学堂马士兵_Struts2_带参数的结果集

访问链接格式:<a href="user/user?type=1">传参数</a>

public class UserAction extends ActionSupport {

  private int type;

 

  public int getType() {

   return type;

  }

 

  public void setType(int type) {

   this.type = type;

  }

 

  @Override

  public String execute() throws Exception {

   return "success";

  }

 

}

     当从一个Action跳转到另一个Action的时候,如果需要传值并且是服务器端的跳转,没有必要再struts.xml文件result的跳转路径中进行传值操作,因为多个服务器端的跳转,共享的是同一个值栈,可以直接取到,但是如果是客户端的跳转(redirect)的方式进行跳转则需要进行如下的配置:

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

      <action name="user" class="com.bjsxt.struts2.user.action.UserAction">

                  <!-- ${}的方式是从值栈取值,注意:不是El表达式 -->

        <result type="redirect">/user_success.jsp?t=${type}</result>

      </action>     

    </package>

但是如果在jsp页面取出传输的值用<s:property value="t"/>是取不到的,因为这种方式是在值栈里取值而我们跳转道德是一个jsp页面不是一个Action所以值栈为空,但是我们可以在ActionContext中进行取值:<s:property value="#parameters.t"/>

深圳人才网 深圳招聘网 深圳人才招聘网 深圳人才大市场 

企业、个人免费注册,获取想要的 深圳 软件工程师招聘信息 月薪最低3000-8000,更有高端猎头职位! 

www.szrcwz.com                                                                                                                                           

                  Google 提供的广告

posted @ 2010-09-29 15:57  栈长  阅读(189)  评论(0编辑  收藏  举报