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

简介: 15、23_尚学堂马士兵_Struts2_模块包含

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

 

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

 

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>  

   </package>  

 

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>  

       

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

 

18、30_尚学堂马士兵_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>  

 

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>        

   </package>  

 

 

18、32_尚学堂马士兵_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"/>  

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



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



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>


   </package>



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>


 


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



18、30_尚学堂马士兵_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>



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>    


   </package>




18、32_尚学堂马士兵_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"/>


相关文章
|
5月前
|
Java
杨老师课堂之JavaEE三大框架Struts2入门第一课
杨老师课堂之JavaEE三大框架Struts2入门第一课
114 0
|
XML Java Apache
Struts2入门二 | 学习笔记
快速学习 Struts2入门二,介绍了 Struts2入门二系统机制, 以及在实际应用过程中如何使用。
Struts2入门二 | 学习笔记
|
XML Java 数据格式
Struts2入门 | 学习笔记
快速学习 Struts2入门,介绍了 Struts2入门系统机制, 以及在实际应用过程中如何使用。
Struts2入门 | 学习笔记
|
Java
struts2入门教学
struts2入门教学
109 0
struts2入门教学
|
XML Java 数据格式
Struts2【入门】(二)
这是Strtus的开山篇,主要是引入struts框架…为什么要引入struts,引入struts的好处是什么,以及对Struts2一个简单的入门….
196 0
Struts2【入门】(二)
|
XML 安全 Java
Struts2【入门】(四)
这是Strtus的开山篇,主要是引入struts框架…为什么要引入struts,引入struts的好处是什么,以及对Struts2一个简单的入门….
135 0
Struts2【入门】(四)
|
XML Java 数据格式
Struts2【入门】(三)
这是Strtus的开山篇,主要是引入struts框架…为什么要引入struts,引入struts的好处是什么,以及对Struts2一个简单的入门….
178 0
Struts2【入门】(三)
|
Java
Struts2【入门】(一)
这是Strtus的开山篇,主要是引入struts框架…为什么要引入struts,引入struts的好处是什么,以及对Struts2一个简单的入门….
138 0
|
XML 设计模式 JSON
springMVC知识重温
Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合
527 0
springMVC知识重温