Struts2学习笔记5

异常处理后,能够提供友好的用户界面,而不是一些错误的代码信息.

利用struts2的异常处理机制可以很方便的实现异常处理,你不再需要在Action中捕获异常,并抛出相关的异常了,这些都交给拦截器来帮你做了。在struts-default.xml中己经设置了拦截器,因此我们可以直接使用声明式异常.struts2-default-xml声明的拦截器如下:

 

Xml代码 复制代码
  1. <interceptors>  
  2. <interceptor name="exception"    
  3. class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/>  
  4. </interceptors>  

 


异常的类型可以分为两种:局部异常映射和全局异常映射

 

当Action抛出异常时,会在局部中和全局中查找与之相匹配的异常,如果局部和全局中都有满足的异常映射,以局部的为准. 例子说明:

 

action:

 

Java代码 复制代码
  1. public class LogonAction {   
  2.     private String userName;   
  3.     private String userPwd;   
  4.     public String getUserName() {   
  5.         return userName;   
  6.     }   
  7.     public void setUserName(String userName) {   
  8.         this.userName = userName;   
  9.     }   
  10.     public String getUserPwd() {   
  11.         return userPwd;   
  12.     }   
  13.     public void setUserPwd(String userPwd) {   
  14.         this.userPwd = userPwd;   
  15.     }   
  16.     public String execute() throws Exception{   
  17.         if(userName.equals("callan") && userPwd.equals("fjf")){   
  18.             ActionContext.getContext().getSession().put("userName""callan");   
  19.             return "succee";   
  20.         } else {   
  21.             throw new SQLException(“用户名密码不正确”);   
  22.         }   
  23.     }   
  24. }  

 

配置文件:

Xml代码 复制代码
  1. <package name="logon" extends="struts-default">  
  2.       <!-- global-exception-mappings必需在action的上面 -->  
  3.        <global-exception-mappings>  
  4.             <exception-mapping result="all" exception="java.lang.Exception">  
  5.                 </exception-mapping>  
  6.         </global-exception-mappings>  
  7.         <action name="logon" class="com.LogonAction">  
  8.             <result name="succee">/logon/welcome.jsp</result>  
  9.             <result name="error">/logon/error.jsp</result>  
  10.             <exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping>  
  11.             <exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>  
  12.             <result name="nullPoint">/logon/nullpoint.jsp</result>  
  13.             <result name="sql">/logon/sql.jsp</result>  
  14.              <result name="all">/logon/all.jsp</result>  
  15.         </action>  
  16.     </package>  

 

上面是个用户登陆的action及配置,定义了两个局部异常和一个全局异常
当输入的用户名和密码不为callan和fjf时,会抛出SQLException异常,局部异常配置起作用,会定向到sql.jsp,如果注释局部sql异常,全局异常起作用,定向到all.jsp

 

 

可以使用Struts2的标签来输出异常信息
<s:property value="exception.message"/>
<s:property value="exceptionStack"/>

例如sql.jsp页面

<body>
   <s:property value="exception.message"/>
 </body>
可以输出 用户名密码不正确

【无人机】基于改进粒子群算法的无人机路径规划研究[和遗传算法、粒子群算法进行比较](Matlab代码实现)内容概要:本文围绕基于改进粒子群算法的无人机路径规划展开研究,重点探讨了在复杂环境中利用改进粒子群算法(PSO)实现无人机三维路径规划的方法,并将其与遗传算法(GA)、标准粒子群算法等传统优化算法进行对比分析。研究内容涵盖路径规划的多目标优化、避障策略、航路点约束以及算法收敛性和寻优能力的评估,所有实验均通过Matlab代码实现,提供了完整的仿真验证流程。文章还提到了多种智能优化算法在无人机路径规划中的应用比较,突出了改进PSO在收敛速度和全局寻优方面的优势。; 适合人群:具备一定Matlab编程基础和优化算法知识的研究生、科研人员及从事无人机路径规划、智能优化算法研究的相关技术人员。; 使用场景及目标:①用于无人机在复杂地形或动态环境下的三维路径规划仿真研究;②比较不同智能优化算法(如PSO、GA、蚁群算法、RRT等)在路径规划中的性能差异;③为多目标优化问题提供算法选型和改进思路。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注算法的参数设置、适应度函数设计及路径约束处理方式,同时可参考文中提到的多种算法对比思路,拓展到其他智能优化算法的研究与改进中。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值