Struts2的异常处理机制

本文详细介绍了Struts2框架中的异常处理机制,包括局部和全局异常映射的配置方式,以及如何输出异常信息。并通过修改登录示例,演示了如何在实际应用中应用这些机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

任何成熟的MVC框架都应该提供成熟的异常处理机制。Strut2也不例外。Struts2提供了一种声明式的异常处理方式。Struts2也是通过配置的拦截器来实现异常处理机制的。

Struts2的异常处理机制通过在struts.xml文件中配置<exception-mapping …>元素完成的,配置该元素时,需要指定两个属性:

exception:此属性指定该异常映射所设置的异常类型。

result:此属性指定Action出现该异常时,系统转入result属性所指向的结果。

6.1.    异常映射也分为两种:

l 局部异常映射:<exception-mapping…>元素作为<action…>元素的子元素配置。

l 全局异常映射:<exception-mapping…>元素作为<global-exception-mappings>元素的子元素配置。

6.2.    输出异常信息:

使用Struts2的标签来输出异常信息:

l <s:property value="exception.message"/> : 输出异常对象本身。

l <s:property value="exceptionStack"/> : 输出异常堆栈信息。

6.3.    示例:

还是修改用户登录示例:

1)      把UserAciton.java中的regist方法改成:

 

 

public String regist() throws Exception{

        //将用户名,密码添加到数据库中

        //...

        //msg = "注册成功。";

        if(true){

           throw new java.sql.SQLException("没有数据库驱动程序");

       }

       

        return this.SUCCESS;

    }

 

 

 

2)      修改struts.xml文件:

 

 

<!DOCTYPE struts PUBLIC

        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

        "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

    <package name="my" extends="struts-default" namespace="/manage">

        <!-- 定义全局处理结果 -->

        <global-results>

        <!-- 逻辑名为sql的结果,映射到/exception.jsp页面 -->

        <result name="sql">/exception.jsp</result>

        </global-results>

       

        <global-exception-mappings>

        <!-- 当Action抛出SQLException异常时,转入名为sql的结果 -->

        <exception-mapping exception="java.sql.SQLException" result="sql"/>

        </global-exception-mappings>

       

        <action name="userOpt" class="org.qiujy.web.struts2.action.UserAction">

            <result name="success">/success.jsp</result>

            <result name="error">/error.jsp</result>

        </action>

    </package>

</struts>

 

 

 

3)      新增一页面:exception.jsp

 

 

<%@ page language="java" pageEncoding="utf-8"%>

<%@ taglib uri="/struts-tags" prefix="s" %>

<html>

 <head>

    <title>异常信息</title>

 </head>

 

 <body>

 <h2>

 出现异常啦

 </h2>

 <hr/>

   <h3 style="color:red">

   <!-- 获得异常对象 -->

    <s:property value="exception.message"/>

    </h3>

    <br/>

    <!-- 异常堆栈信息 -->

    <s:property value="exceptionStack"/>

</html>

 

 

 

4)      运行regist.jsp进行调试:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值