一口一口吃掉Struts(十)——异常自动处理机制 .
来源:互联网 发布:专业美工 编辑:程序博客网 时间:2024/05/16 10:34
在通常的情况下,我们得到异常以后,需要将页面导航到一个错误提示的页面,提示错误信息。利用Stuts我们可以采用两种方式处理异常
一、编程式异常处理
*即我们在Action中调用业务逻辑层对象的方法时,用try{ }catch的方式来截获异常之后,手工对异常进行处理
*我们以前的开发过程中,都是使用编程式的异常处理
*在编程式异常处理的时候,我们可以使用struts的消息处理机制来对这些异常信息进行处理。
二、自动异常处理机制
*即在Action中不捕捉异常,而是将异常抛出给struts框架处理
*我们需要在配置文件中指示struts如何处理这些被抛出的异常
*使用<exception/>元素来定义自动异常处理
方式一在上一篇有关国际化的文章中,我们已经涉及过了,这里我们主要说一下方式二。
主要步骤:
1、配置Excepiton标签
- <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>
<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>
<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>
哪个优先?就近原则。
<exception/>元素配置的关键属性是:
*key – 即这个异常所对应的错误提示消息文本的key,这个key的值,需要在资源属性文件中进行定义
*type – 即定义需要处理哪种类型的Exception
*path – 定义一旦出现异常,需要转向哪个页面来进行提示,如果不定义path属性,默认情况下,将使用Action配置中的input属性的值来作为转向的页面
2、在JSP页面中,使用<html:errors/>标签,即可将其异常对应的错误消息文本进行显示
示例:
还是以登录为例——
LoginAction
- **
- * 登录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="BACKGROUND-COLOR: #ffffff; FONT-FAMILY: Arial"></SPAN>
** * 登录action * * @author jialin 作用:取得表单数据,调用model层业务逻辑,返回转向信息 */public class LoginAction extends Action {@Overridepublic 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");}}
配置文件采用上面列举出的。
显示界面使用使用<html:errors/>标签,即可将其异常对应的错误消息文本进行显示
效果:
0 0
- 一口一口吃掉Struts(十)——异常自动处理机制
- 一口一口吃掉Struts(十)——异常自动处理机制 .
- 一口一口吃掉Struts(六)——动态ActionForm
- 一口一口吃掉struts(七)——ActionForward知多少
- 一口一口吃掉Struts(八)——四种forward
- 一口一口吃掉Struts(六)——动态ActionForm .
- 一口一口吃掉struts(七)——ActionForward知多少 .
- 一口一口吃掉Struts(八)——四种forward
- 一口一口吃掉Struts(一)——用JSP+Servlet演示Struts的基本原理
- 一口一口吃掉Struts(一)——用JSP+Servlet演示Struts的基本原理
- 一口一口吃掉Struts(二)——STRUTS基本工作流程
- 一口一口吃掉Struts(三)——一个简单Struts实例
- 一口一口吃掉Struts(五)——测试Struts标签库
- 一口一口吃掉Struts(一)——用JSP+Servlet演示Struts的基本原理 .
- 一口一口吃掉Struts(二)——STRUTS基本工作流程 .
- 一口一口吃掉Struts(三)——一个简单Struts实例 .
- 一口一口吃掉Struts(五)——测试Struts标签库 .
- 一口一口吃掉Struts(一)——用JSP+Servlet演示Struts的基本原理
- Tomcat 指向工程根目录 解决工程名 模块路径名冲突
- 题目1096:日期差值
- Mongodb Connection String
- linux中强大且常用命令:find、grep
- checkio (数独)
- 一口一口吃掉Struts(十)——异常自动处理机制 .
- GSOAP 在一个客户端内调用多个服务出现的问题解决
- MySQL存储过程详解 mysql 存储过程
- jQuery实现简易数字摇奖程序
- android中的后退键——onBackPressed()的使用
- ARC 类型转换:显示转换 id 和 void *
- sde
- bootstrap学之模式对话框加载另一jsp页面内容
- 华为编程大赛--字符串匹配