您的位置:首页 > 编程语言 > Java开发

SSH-struts2的异常处理

2015-06-30 23:13 405 查看
在学习j2se的时候学习过利用java的exception类去处理异常。在struts2框架中也提供了对于异常的处理,简单说就是当Action发生异常时,可以在struts2.xml文件中进行配置,将页面跳转进行调整,给用户一个更人性化的反馈。

在struts2的异常处理中,分为两种异常处理,一种是全局的:所有Action出现异常都可以跳转到此页面。另一种是局部的:指定某一个Action异常跳转到此页面。

局部异常处理

在struts2.xml中在exception-mapping节点中指定result属性名称;exception属性中指定异常类,此类要继承exception。

result节点中指定name属性,以及异常发生后跳转的页面。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <package name="struts2" extends="struts-default">
        <action name="login" class="com.syq.struts2.LoginAction" >
            <exception-mapping result="usernameInvalid" exception="com.syq.exception.UsernameException"></exception-mapping>
            <exception-mapping result="passwordInvalid" exception="com.syq.exception.PasswordException"></exception-mapping>

            <result name="success">/result.jsp</result>
            <result name="usernameInvalid">/UsernameInvalid.jsp</result>
            <result name="passwordInvalid">/PasswordInvalid.jsp</result>
        </action>
    </package>

</struts>


全局异常处理

global-results节点中指定异常跳转的页面;global-exception-mappings中指定异常类。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <package name="struts2" extends="struts-default">
        <global-results>
            <result name="usernameInvalid">/UsernameInvalid.jsp</result>
            <result name="passwordInvalid">/PasswordInvalid.jsp</result>
        </global-results>
        <global-exception-mappings>
            <exception-mapping result="usernameInvalid" exception="com.syq.exception.UsernameException"></exception-mapping>
            <exception-mapping result="passwordInvalid" exception="com.syq.exception.PasswordException"></exception-mapping>
        </global-exception-mappings>

        <action name="login" class="com.syq.struts2.LoginAction" >
            <result name="success">/result.jsp</result>
        </action>
    </package>

</struts>


我们即可以在Action中定义异常与结果,也可以定义全局的异常与结果,局部的优先级要大于全局的,如果定义全局的那么可以为所有的Action所公用,而局部的异常与结果只能被当前的Action所独享。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: