Struts2 异常处理机制
任何程序设计语言都是有异常处理机制,Struts2通过使用声明式异常机制处理异常。
在Struts2中主要有两种异常映射方式:
1:局部异常处理 (action)
2:全局异常处理 (package)
异常主要是通过Struts2的拦截器机制处理异常和异常处理机制来处理异常,
Struts2中大部分都是使用拦截器实现。interceptor
输出异常信息
使用Struts2的标签来输出异常信息:
﹤s:property
value="exception.message"/﹥:输出异常对象本身。
﹤s:property
value="exceptionStack"/﹥: 输出异常堆栈信息。
实例
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
struts2的声明式异常处理:
<a href="/exep_holder.action">异常处理</a>
</body>
</html>
struts.xml
<package name="global-default" namespace="/" extends="struts-default">
<!-- 全局异常处理 -->
<global-results>
<result name="error">/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="error" exception="java.lang.ArithmeticException"></exception-mapping>
</global-exception-mappings>
</package>
<package name="exeception_holder" namespace="/" extends="global-default">
<action name="exep_holder" class="com.struts2.action.ExceptionHolderController" method="holder">
<!-- 局部异常处理
<result name="error">/error.jsp</result>
<exception-mapping result="error" exception="java.lang.ArithmeticException"></exception-mapping>
-->
</action>
</package>
ExceptionHolderController.java
package com.struts2.action;
import com.opensymphony.xwork2.ActionSupport;
public class ExceptionHolderController extends ActionSupport {
public String holder() throws Exception {
String str_error="";
int i= 100/0;
if(i>0) {
str_error="错误显示";
}
else{
str_error="正确显示";
}
this.addFieldError("error_message", str_error);
return ERROR;
}
}
error.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'error.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<s:property value="exception.message"/><br/>
<s:property value="exceptionStack"/><br/>
<s:property value="error_message"/><br/>
<s:debug></s:debug>
</body>
</html>
分享到:
相关推荐
Struts2异常处理机制
Struts2 异常处理的四种获取属性方法,大家可以借鉴学习
配合博文:http://blog.csdn.net/u011638419/article/details/41343683
struts2异常处理实例
NULL 博文链接:https://wlh269.iteye.com/blog/321746
struts2的异常处理,解决异步请求时,异常以json格式发送到客户端。以及dao单元测试的配置。
项目中出现的异常通常要用一个友好的异常页面来显示,通过对struts2.xml的配置能拦截全局异常,只要出现异常就会转向异常页面。
本文档主要介绍了struts2的异常处理机制,希望对你有所帮助。
NULL 博文链接:https://wjt276.iteye.com/blog/690323
struts常见异常及处理
NULL 博文链接:https://yuxisanren.iteye.com/blog/1707508
struts2 单文件,多文件上传及异常处理
Struts2的异常处理实例 博文链接:https://zmx.iteye.com/blog/463996
从网上搜索的一段关于struts1.x自定义异常处理的方法。
通过定义继承RuntimeException的异常类及继承ExceptionHandler的异常处理类,手动从dao层捕获异常。非常实用!
使用技术说明: 1.使用struts2+spring3+hibernate3整合实现用户CRUD功能。 2.使用技术 A.Struts2国际化(i18n)、本地化程序。 B.文件上传下载 ... D.Struts2异常处理 3.实现方式 基于配置文件
在网络中查询解决办法大多是使用异常处理的办法,其内容如下: <package name="default" extends="struts-default"> <global-results> <result name="client-abort-exception">/ignored.jsp</result> ...
警告: 本工具为漏洞自查工具,请勿非法攻击他人网站! Struts2漏洞检查工具2017版 V2.0 ...jakatar处理复杂数据类型时,异常处理不当,导致OGNL代码执行,通过在请求的Content-Type头中构造OGNL表达式来执行Java代码。