在通常的情况下,我们得到异常以后,需要将页面导航到一个错误提示的页面,提示错误信息。利用Stuts我们可以采用两种方式处理异常:
1.编程式异常处理
  • 即我们在Action中调用业务逻辑层对象的方法时,用try{ }catch的方式来截获异常之后,手工对异常进行处理
  • 在编程式异常处理的时候,我们可以使用struts的消息处理机制来对这些异常信息进行处理。

2. 自动异常处理机制

  • 即在Action中不捕捉异常,而是将异常抛出给struts框架处理
  • 我们需要在配置文件中指示struts如何处理这些被抛出的异常
  • 使用<exception/>元素来定义自动异常处理

一、主要步骤:

1. 配置Exception标签:struts-config.xml

 <action path="/login" type="com.jialin.LoginAction" name="userForm" scope="request" validate="true" attribute="uf" input="/index.jsp">
<exception key="login.user.not.found" type="com.jialin.UserNotFoundException" />
<exception key="login.password.error" type="com.jialin.PasswordErrorException" path="/LoginFail.jsp" /> </action>

该Exception只对当前action起作用,也可以配置全局exception

 <global-exceptions>
<exception key="login.user.not.found" type="com.jialin.UserNotFoundException" />
<exception key="login.password.error" type="com.jialin.PasswordErrorException" path="/LoginFail.jsp" />
</global-exceptions>
 
1)<exception/>元素配置的关键属性是:
 
  • key – 即这个异常所对应的错误提示消息文本的key,这个key的值,需要在资源属性文件中进行定
  • type – 即定义需要处理哪种类型的Exception
  • path – 定义一旦出现异常,需要转向哪个页面来进行提示,如果不定义path属性,默认情况下,将使用Action配置中的input属性的值来作为转向的页面

2)哪个优先?——就近原则

2. 在JSP页面,使用:<html:errors/>标签

即可将其异常对应的错误消息文本进行显示

 **
* 登录action
*
* @author jialin 作用:取得表单数据,调用model层业务逻辑,返回转向信息
*/
public class LoginAction extends Action { @Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
UserActionForm userForm = (UserActionForm) form;
String userName = userForm.getName();
int password = userForm.getPassword(); UserManage userManage = new UserManage();
User user = new User();
user.setName(userName);
user.setPassword(password);
//这里不再有trycatch语句
userManage.ValidateUser(user);
return mapping.findForward("success"); } } <span style="font-family:Arial;BACKGROUND-COLOR: #ffffff"></span>

二、就近原则

Struts——(四)异常处理机制的更多相关文章

  1. Java基础(四)-异常处理机制及其设计

    本篇主要是记录自己所理解的Java异常处理机制(基于jdk1.7)以及怎么去处理和设计异常.还记得当初学习Java异常这块的时候都没怎么注意它的用途,以为就是简单的处理下异常,我避免程序出现这样错误就 ...

  2. 异常处理器详解 Java多线程异常处理机制 多线程中篇(四)

    在Thread中有异常处理器相关的方法 在ThreadGroup中也有相关的异常处理方法 示例 未检查异常 对于未检查异常,将会直接宕掉,主线程则继续运行,程序会继续运行 在主线程中能不能捕获呢? 我 ...

  3. Python笔记(四):异常处理机制与 open()

    (一)  异常处理机制概述 就像日常生活中会遇到各种意外情况一样(例如:你可能考虑过如果中了500w该怎么做),代码运行过程中也会遇到这种意外情况,python提供了这么一种机制,处理意外情况(就像如 ...

  4. C++(四十六) — 异常处理机制、标准IO输入输出

    1.异常处理机制 一般来说,异常处理就是在程序运行时对异常进行检测和控制.而在C++ 中,使用 try-throw-catch模式进行异常处理的机制. #include<iostream> ...

  5. Java异常处理机制 try-catch-finally 剖析

    Java拥有着强大的异常处理机制,最近初步学习了下,感觉内容还是挺多的,特此来将自己的理解写出来与大家分享. 一. 在Java代码code中,由于使用Myeclipse IDE,可以自动提醒用户哪里有 ...

  6. JAVA 异常处理机制

    主要讲述几点: 一.异常的简介 二.异常处理流程 三.运行时异常和非运行时异常 四.throws和throw关键字 一.异常简介 异常处理是在程序运行之中出现的情况,例如除数为零.异常类(Except ...

  7. C++学习笔记27:异常处理机制

    一.异常处理机制基础 异常的定义 程序中可以检测的运行不正常的情况 异常处理的基本流程 某段程序代码在执行操作时发生特殊情况,引发一个特定的异常 另一段程序代码捕获该异常并处理它 二.异常的引发 th ...

  8. Java 异常处理机制和集合框架

    一.实验目的 掌握面向对象程序设计技术 二.实验环境 1.微型计算机一台 2.WINDOWS操作系统,Java SDK,Eclipse开发环境 三.实验内容 1.Java异常处理机制涉及5个关键字:t ...

  9. java异常处理机制 (转载)

    java异常处理机制 本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点,从C ...

随机推荐

  1. selenium2 Webdriver + Java 自动化测试实战和完全教程

    selenium2 Webdriver + Java 自动化测试实战和完全教程一.快速开始 博客分类: Selenium-webdriverselenium webdriver 学习selenium ...

  2. Java集合类简单总结(重学)

    java集合类简介(重学) 一.Collection(集合).Map接口两者应该是平行关系吧. 1.Map介绍 Map是以键值(key-value)对来存放的,2个值.通过key来找到value(例: ...

  3. Swagger-API测试工具实战

    初次通过swagger不知道这是一个什么东东. 一.拿到一个项目需要测试,打开地址一看有个大写的swagger,于是各种脑补: 我所理解的就是,swagger是一个API开发工具或者来说是一个框架,开 ...

  4. SQL Server Reporting Services (SSRS): Reporting Services in SQL Server 2012 (codename "Denali") will support XLSX, DOCX formats. Bye bye 65536 rows limit in XLS files ;)

    当SSRS报表的时候,若相应EXCEL是2003以下,在行数超过65536的时候报表会报错 "Microsoft.ReportingServices.ReportProcessing.Han ...

  5. MSMQ消息队列 用法

    引言 接下来的三篇文章是讨论有关企业分布式开发的文章,这三篇文章筹划了很长时间,文章的技术并不算新,但是文章中使用到的技术都是经过笔者研究实践后总结的,正所谓站在巨人的肩膀上,笔者并不是巨人,但也希望 ...

  6. C++ 编译报错

    vs编译错误描绘如下: 1>f:\company\newphone\softphoneservice\softphoneservice\EventS.h(13): error C2143: 语法 ...

  7. C语言dsPIC / PIC24 serial bootloader和C#语言bootloader PC端串口通信程序

    了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 新dsPIC/PIC2 ...

  8. JS操作JSON总结

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意 ...

  9. Kolmogorov 的数学观与业绩

    https://www.douban.com/group/topic/11395706/ 作者:伊藤清 当我得知苏联伟大的数学家,84岁的 Andreyii Nikolaevich Kolmogoro ...

  10. TJI读书笔记16-异常处理

    TJI读书笔记16-异常处理 概念 基本异常情形 异常的捕获 自定义异常 异常说明 捕获所有异常 栈轨迹 重新抛出异常 Java标准异常 使用finally 异常的限制 构造器 异常的匹配 其他乱七八 ...