马士兵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天前
|
人工智能 定位技术 SEO
我学 GEO 第 15 天:终于知道AI GEO该如何做?
我是暴走的莉莉酱,边旅行边研究AI GEO的数字游民。专注普通人如何提升“AI可见度”——让AI在回答用户问题时准确识别、理解并推荐你。不讲玄学,只做可测、可调、可持续的GEO实践。
403 125
|
7天前
|
机器学习/深度学习 人工智能 调度
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
HappyHorse 1.1 是新一代视频生成大模型,全面升级动态表现力、角色一致性、指令遵循、视觉质感与音画协同能力。支持I2V/T2V/R2V三类生成,适配短剧、电商广告、品牌营销等场景,提供高质、流畅、可控的AI视频生产力。
686 4
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
|
5天前
|
缓存 人工智能 运维
阿里云618百炼大模型Qwen3.7-Max功能、免费试用、订阅计费、配置接入详解
Qwen3.7-MAX是阿里云百炼平台推出的通义千问3.7系列旗舰大语言模型,专为智能体时代复杂任务打造,依托阿里云全域算力与自研技术,在逻辑推理、长文本处理、代码工程、长周期自主执行等领域达到行业顶尖水平。2026年618期间,该模型推出多重免费试用权益、按量计费5折、订阅套餐优惠等专属福利,覆盖个人开发者、团队与企业全场景需求,以下从核心功能、免费试用、订阅计费、配置接入四方面展开详细解析。
397 123
|
3天前
|
人工智能 自然语言处理 API
阿里云Token Plan团队版解析:功能、三档套餐与省钱订阅指南
阿里云百炼平台推出的Token Plan团队版,是面向企业与团队的AI大模型订阅服务,以Credits为统一计量单位,整合文本与图像生成模型,提供团队管理、数据安全、多工具兼容等核心能力,解决团队零散订阅AI服务的管理混乱、成本失控、数据安全等痛点。本文将从核心定位、套餐详情、计费规则、团队管理、工具兼容、便宜订阅技巧等方面,全面解析Token Plan团队版,帮助企业与团队高效、低成本地使用AI服务。
298 108
|
18天前
|
缓存 测试技术 API
Qwen 3.7 Plus 与 Max 实测:性价比与多模态能力差异解析(2026)
2026 年 6 月 1 日,阿里悄无声息地发布了 Qwen 3.7 Plus,距 Qwen 3.7 Max 上线刚好 11 天。同样的 1M 上下文,同样的 35 小时自治上限。但价格才是头条:Plus 是 0.40/M输入,Max是 2.50/M——便宜约 6 倍——并且还能看图、看视频。Vision Arena 上 Plus 已经排到 #16。所以这周真正值得讨论的问题不是”要不要为视觉能力买单”,而是”Max 凭什么用 6 倍价格换来 2 个百分点的 benchmark 领先”。
|
4天前
|
存储 人工智能 数据可视化
别再手动复制 Skill 了:多 Agent 时代的 Skill 管理方案
多 Agent 场景下 Skill 的统一管理与同步。
236 124
|
11天前
|
缓存 人工智能 运维
GLM 5.2自托管全流程实战:硬件选型、vLLM/SGLang部署与成本盈亏测算
2026年智谱发布GLM 5.2超大混合专家模型,区别于以往仅开放API的闭源大模型,该模型权重以MIT开源协议对外发布,企业与开发者可完整下载、本地审计、私有化部署,实现数据不出环境、自定义微调、自主调度推理资源。GLM 5.2拥有753B总参数,原生支持百万级上下文窗口,在代码生成、长文档推理、数学逻辑等多项基准测试中对标国际顶尖商用模型,是首款可完整自托管的前沿代码向大模型。
883 0
|
4天前
|
SQL 存储 运维
日志能不能改?SLS LogStore 原生支持更新和删除了
随着日志承载的业务语义越来越多,数据订正、回填、清理等需求变得越来越常见。SLS 现已为 LogStore 提供原生 update/delete 能力——支持按 RowID 精确修改,按查询条件批量操作,类似计费调账、标签刷新、反馈回填等场景都可以直接在 LogStore 内完成闭环。
203 124