Struts2 中的异常处理?
异常有几种类型:
1.意外的错误
2.改变工作流
3.通过与用户交互来恢复
4.显示错误
下面分别对这几种异常的解析
1.意外的错误
<package name="itcast" namespace="/test" extends="struts-default">
<global-results>
<result name="unknown">/WEB-INF/jsp/error.jsp</result>
<result name="dberror">/WEB-INF/jsp/dberror.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="unknown" exception="java.lang.Exception"></exception-mapping>
<exception-mapping result="dberror" exception="java.sql.SELException"></exception-mapping>
</global-exception-mappings>
</package>
这种方式用来捕获一些为知的错误,java.lang.Exception是所有异常的基类,不管是什么错误,最终都能给用户友好的界面交互,
也可以按异常的种类进行分类(如:数据库错误,操作错误,服务器连接错误等),定义多个视图
2.改变工作流
<global-results>
<result name="login">/WEB-INF/jsp/login.jsp</result>
<result name="noaccess">/WEB-INF/jsp/noaccess.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="login" exception="UserNotAuthentivatedException"></exception-mapping>
<exception-mapping result="noaccess" exception="ActionNotAllowedException"></exception-mapping>
</global-exception-mappings>
遇到错误时改变工作的走向
3.通过与用户交互恢复
<action name="helloworld" class="cn.itcast.action.HelloWorldAction" method="execute" >
<result name="success">/WEB-INF/page/hello.jsp</result>
<result name="dupPk">/WEB-INF/jsp/user/findUser-success.jsp</result>
<exception-mapping result="dupPk" exception="org.hibernate.exception.ConstraintViolationException"></exception-mapping>
</action>
在action中定义<exception-mapping>捕捉异常
4.错误显示
当exception拦截器拦截了异常之后,将在值栈中添加两个新的属性:
1.exception:异常的描述信息,通过getMessage()方法得到。
2.exceptionStack:异常栈的跟踪信息。
在jsp页面上显示错误信息:
<s:if test="exception!=null">
<s:text name="errorMessage"/>
</s: if>
errorMessage已在资源文件中定义
其他的错误信息可以通过property标签来获取:
<s:property value="exception" />
<s:property value="exceptionStack" />
分享到:
相关推荐
NULL 博文链接:https://yuxisanren.iteye.com/blog/1707508
Struts2异常处理机制
主要介绍了Struts2中异常处理机制分析,涉及到了声明式异常捕捉的相关内容,以及两种异常映射的分析,需要的朋友可以参考下。
struts2的异常处理,解决异步请求时,异常以json格式发送到客户端。以及dao单元测试的配置。
配合博文:http://blog.csdn.net/u011638419/article/details/41343683
本文档主要介绍了struts2的异常处理机制,希望对你有所帮助。
项目中出现的异常通常要用一个友好的异常页面来显示,通过对struts2.xml的配置能拦截全局异常,只要出现异常就会转向异常页面。
Struts2的异常处理实例 博文链接:https://zmx.iteye.com/blog/463996
Struts2 异常处理的四种获取属性方法,大家可以借鉴学习
NULL 博文链接:https://wjt276.iteye.com/blog/690323
NULL 博文链接:https://wlh269.iteye.com/blog/321746
struts常见异常及处理
struts2 单文件,多文件上传及异常处理
从网上搜索的一段关于struts1.x自定义异常处理的方法。
在struts2中使用result里type="stream"的结果类型时,可以实现文件的下载管理,使用时也是比较顺畅,但是当在“下载提示窗口”中点击“取消按钮”时,总是报出“java.lang.IllegalStateException”异常,异常内容...
《Struts 2完全学习手册》全面讲述Struts 2开发框架的知识,包括Struts 2中配置文件的详细讲解、国际化与异常处理、数据类型的转换、数据的输入校验、Struts 2强大的标签库、Struts 2中文件的上传与下载、Struts 2对...
struts2异常处理实例
警告: 本工具为漏洞自查工具,请勿非法攻击他人网站! Struts2漏洞检查工具2017版 V2.0 ...jakatar处理复杂数据类型时,异常处理不当,导致OGNL代码执行,通过在请求的Content-Type头中构造OGNL表达式来执行Java代码。
本文档是写的Java相关的异常及其处理办法 包括:Java、Jdbc、Android、JavaScript、Servlet、Jsp、Hibernate、Struts2中一般出现的异常及其解决办法,注明适用于初学者。
NULL 博文链接:https://xace.iteye.com/blog/416561