Struts2 异常处理


当前第2页 返回上一页

输入值“Struts2”并提交页面。你应该看到以下页面:

如上面的例子所示,默认exception拦截器处理异常的工作非常好。现在让我们为异常创建一个专门的错误页面,一个名为Error.jsp的文件,包含以下内容:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
</head>
<body>
   This is my custom error page
</body>
</html>

现在,让我们配置Struts在异常情况下使用此错误页面,修改struts.xml如下:

<?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>
<constant name="struts.devMode" value="true" />
   <package name="helloworld" extends="struts-default">
   
      <action name="hello" 
         class="cn.Vue5教程.struts2.HelloWorldAction" 
         method="execute">
         <exception-mapping exception="java.lang.NullPointerException"
         result="error" />
         <result name="success">/HelloWorld.jsp</result>
         <result name="error">/Error.jsp</result>
      </action>

   </package>
</struts>

如上面的例子所示,现在我们已经配置Struts为NullPointerException使用专门的Error.jsp。如果现在重新运行程序,将看到以下输出页面:

除此之外,Struts2框架还带有一个“logging”拦截器来记录异常。通过启用记录器记录未捕获的异常,我们可以轻松地查看堆栈跟踪记录,并找出哪里出错了。

全局异常映射

我们已经看到了如何处理特定于action的异常。现在,我们可以设置一个全局异常,这将应用于所有的action。例如,为了捕获相同的NullPointerException异常,我们可以在<package...>标签中添加<global-exception-mappings...>标签,并在struts.xml文件的<action...>标签中添加<result...>标签,如下:

<?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>
<constant name="struts.devMode" value="true" />
   <package name="helloworld" extends="struts-default">

      <global-exception-mappings>
         <exception-mapping exception="java.lang.NullPointerException"
         result="error" />
      </global-exception-mappings>

      <action name="hello" 
         class="cn.Vue5教程.struts2.HelloWorldAction" 
         method="execute">
         <result name="success">/HelloWorld.jsp</result>
         <result name="error">/Error.jsp</result>
      </action>

   </package>
</struts>



标签:Struts2

返回前面的内容

相关阅读 >>

Struts2 类型转换

Struts2 环境设置

Struts2 actions动作

Struts2 hello world示例

Struts2 配置文件

Struts2 异常处理

Struts2 架构

Struts2 主题和模板

Struts2 hibernate集成

Struts2 spring集成

更多相关阅读请进入《Struts2》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...