博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一口一口吃掉Struts(十)——异常自动处理机制
阅读量:4655 次
发布时间:2019-06-09

本文共 2065 字,大约阅读时间需要 6 分钟。

在通常的情况下,我们得到异常以后,需要将页面导航到一个错误提示的页面,提示错误信息。利用Stuts我们可以采用两种方式处理异常
 
一、编程式异常处理
 
*即我们在Action中调用业务逻辑层对象的方法时,用try{ }catch的方式来截获异常之后,手工对异常进行处理
 
*我们以前的开发过程中,都是使用编程式的异常处理
 
*在编程式异常处理的时候,我们可以使用struts的消息处理机制来对这些异常信息进行处理。
 
二、自动异常处理机制
 
*即在Action中不捕捉异常,而是将异常抛出给struts框架处理
 
*我们需要在配置文件中指示struts如何处理这些被抛出的异常
 
*使用<exception/>元素来定义自动异常处理
 
方式一在上一篇有关国际化的文章中,我们已经涉及过了,这里我们主要说一下方式二。
 
主要步骤:
1、配置Excepiton标签
[html]
 
  1. <action path="/login" type="com.jialin.LoginAction" name="userForm"  
  2.             scope="request" validate="true" attribute="uf" input="/index.jsp">  
  3.   
  4.             <exception key="login.user.not.found" type="com.jialin.UserNotFoundException" />  
  5.             <exception key="login.password.error" type="com.jialin.PasswordErrorException"  
  6.                 path="/LoginFail.jsp" />  
  7.   
  8.         </action>  
该Exception只对当前action起作用,也可以配置全局exception
[html]
 
  1. <global-exceptions>  
  2.         <exception key="login.user.not.found" type="com.jialin.UserNotFoundException" />  
  3.         <exception key="login.password.error" type="com.jialin.PasswordErrorException"  
  4.             path="/LoginFail.jsp" />  
  5.     </global-exceptions>  
哪个优先?就近原则。
 
<exception/>
元素配置的关键属性是:
 
*key – 即这个异常所对应的错误提示消息文本的key,这个key的值,需要在资源属性文件中进行定义
 
*type – 即定义需要处理哪种类型的Exception
 
*path – 定义一旦出现异常,需要转向哪个页面来进行提示,如果不定义path属性,默认情况下,将使用Action配置中的input属性的值来作为转向的页面
 
2、
JSP
页面中,使用
<
html:errors
/>
标签,即可将其异常对应的错误消息文本进行显示
 
示例:
还是以登录为例——
 
LoginAction
 
[java]
 
  1. **  
  2.  * 登录action  
  3.  *   
  4.  * @author jialin 作用:取得表单数据,调用model层业务逻辑,返回转向信息  
  5.  */  
  6. public class LoginAction extends Action {  
  7.   
  8.     @Override  
  9.     public ActionForward execute(ActionMapping mapping, ActionForm form,  
  10.             HttpServletRequest request, HttpServletResponse response)  
  11.             throws Exception {  
  12.         UserActionForm userForm = (UserActionForm) form;  
  13.         String userName = userForm.getName();  
  14.         int password = userForm.getPassword();   
  15.   
  16.         UserManage userManage = new UserManage();  
  17.         User user = new User();  
  18.         user.setName(userName);  
  19.         user.setPassword(password);  
  20.         //这里不再有trycatch语句  
  21.         userManage.ValidateUser(user);  
  22.         return mapping.findForward("success");  
  23.   
  24.     }  
  25.   
  26. }  
  27.   
  28.   
  29. <span style="font-family:Arial;BACKGROUND-COLOR: #ffffff"></span>  
 
 
 
配置文件采用上面列举出的。
 
显示界面使用使用
<
html:errors
/>
标签,即可将其异常对应的错误消息文本进行显示
 
效果:
 
下篇继续
 

转载于:https://www.cnblogs.com/huidaoli/articles/3370298.html

你可能感兴趣的文章
【网页插件】jQuery Weather v3.0 (网页天气预报)
查看>>
基于大数据计算思想的分布式数据库
查看>>
MyBaties --day1
查看>>
.net 使用AgsXMPP与openfire连接,实现跨平台信息流通。
查看>>
DP动态规划【专辑@AbandonZHANG】
查看>>
Android TextureView简易教程
查看>>
IDEA解决从git上clone代码没有maven依赖的问题
查看>>
django 在centos 7 下 指定ip地址和端口 报错问题
查看>>
1203 实验三 进程调度模拟实验
查看>>
ptyhon之路day3-文件处理及函数1
查看>>
SAE上部署Django (Mac OSX)
查看>>
Windows反复重启的可能的解决办法
查看>>
CheckRefreshed 判断页面刷新
查看>>
NOIP 2000 乘积最大
查看>>
fatal: the remote end hung up unexpectedly
查看>>
Delphi-操作剪贴板
查看>>
hdu 1029
查看>>
Docker 容器的网络连接 & 容器互联
查看>>
吾爱专题脱壳练习----压缩壳练习之三
查看>>
LeetCode -- Palindrome Linked List
查看>>