天天看点

马士兵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">  

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