在使用框架之前我们的程序中遇到异常,都是使用try{…}catch{…}手动捕获解决,或者使用throws Exception将异常抛给别人去解决。在struts2框架中,异常的解决方法,更方便了,只要在struts.xml配置文件中声明一下就可以了。今天我们就来学习一下struts2的声明式异常处理。

 

Struts2的异常处理,靠的是ExceptionMappingInterceptor异常拦截器。这个异常处理的拦截器是我们struts.xml配置文件中继承过的struts-default包中的一个默认拦截器,所以不用我们做额外的拦截器配置。

Struts2声明式异常处理


下面就用一个实例来感性的了解一下,声明式异常处理的使用:


一、新建一个web project项目

Struts2声明式异常处理


二、导入jar包,Build Path添加到项目中


Struts2声明式异常处理


局部异常处理

三、web.xml中配置文件

Struts2声明式异常处理


四、新建一个action类,名称为:HelloWorldAction

Struts2声明式异常处理


五、新建三个页面

1、新建一个index.jsp页面,作为项目启动默认加载的页面

Struts2声明式异常处理


2、新建一个helloWorld.jsp页面,作为成功跳转的页面

Struts2声明式异常处理


3、新建一个struts.xml配置文件

Struts2声明式异常处理


六、导出war包

现在点击项目右键 ---> export ---> war file ---> 点击Browser选择war包导出路径 ---> finish

Struts2声明式异常处理

Struts2声明式异常处理

Struts2声明式异常处理


七、将导出的war包放到tomcat服务器的webapps文件夹下面

Struts2声明式异常处理


Ctrl+R打开运行框,输入cmd,回车打开dos窗口,

Struts2声明式异常处理


八、启动tomcat

使用dos命令,进入tomcat的bin文件夹下,执行startup.bat命令,启动服务器

Struts2声明式异常处理


Tomcat会启动一个新的dos窗口,打印启动日志,看到下面的信息即表示tomcat启动成功。

Struts2声明式异常处理


此时war包已经自动解压

Struts2声明式异常处理

九、打开浏览器输入访问网址:http://localhost:8080/Struts2_exception01/

Struts2声明式异常处理

输入名字,点击提交按钮,网页直接报错了

Struts2声明式异常处理


十、struts.xml中配置异常处理

修改struts.xml的配置文件,增加红框框中的两个配置

Struts2声明式异常处理


使用和上面同样的方法导出war包,放到tomcat的webapps文件夹下(放之前先将上次放入的同名的那个war包和解压后的文件夹删除),重新启动tomcat,

通过浏览器访问项目url:http://localhost:8080/Struts2_exception01/  ,点击提交按钮,后页面跳转到了错误页面error.jsp,

Struts2声明式异常处理

全局异常处理


刚刚这个是我们针对某个action的特定异常做了处理,接下来,我们配置一个能捕获所有的action中的NullPointerExcetion异常的处理,标签是:<global-exception-mappings>,如图:

Struts2声明式异常处理


重新导出war包,替换tomcat中webapps中的war包,重新启动tomcat,重新访问项目url,点击提交,页面如下,

(补充:我在error.jsp页面中,新加了“捕获所有action异常页面”几个字)

Struts2声明式异常处理































相关文章: