当前位置: 移动技术网 > IT编程>开发语言>Java > 详解如何让Spring MVC显示自定义的404 Not Found页面

详解如何让Spring MVC显示自定义的404 Not Found页面

2019年07月19日  | 移动技术网IT编程  | 我要评论

不知道大家对千篇一律的404 not found的错误页面是否感到腻歪了?其实通过很简单的配置就能够让spring mvc显示您自定义的404 not found错误页面。

在web-inf的web.xml里添加一个新的区域:

意思是一旦有404错误发生时,显示resouces文件夹下的404.jsp页面。

<error-page>

<error-code>404</error-code>

<location>/resources/404.jsp</location>

</error-page>

现在可以随意开发您喜欢的个性化404错误页面了。

完毕之后,随便访问一个不存在的url,故意造成404错误,就能看到我们刚才配置的自定义404 not found页面了。

如果想在spring mvc里实现一个通用的异常处理逻辑(exception handler), 能够捕捉所有类型的异常,比如通过下面这种方式抛出的异常,可以按照下面介绍的步骤来做。

1. 新建一个类,继承自simplemappingexceptionresolver:

public class globaldefaultexceptionhandler extends

simplemappingexceptionresolver {

public globaldefaultexceptionhandler(){

system.out.println("globaldefaultexceptionhandler constructor called!");

}

@override

public string buildlogmessage(exception ex, httpservletrequest request) {

system.out.println("exception caught by jerry");

ex.printstacktrace();

return "spring mvc exception: " + ex.getlocalizedmessage();

}

2. 在spring mvc的servlet配置文件里,将刚才创建的类作为一个bean配置进去:

bean的id设置为simplemappingexceptionresolver,class设置为步骤一创建的类的包含namespace的全名。创建一个名为defaulterrorview的property,其value为generic_error, 指向一个jsp view:generic_error.jsp。

<bean id="simplemappingexceptionresolver" class="com.sap.exception.globaldefaultexceptionhandler">

<property name="exceptionmappings">

<map>

<entry key="exception" value="generic_error"></entry>

</map>

</property>

<property name="defaulterrorview" value="generic_error"/>

</bean>

generic_error.jsp的源代码:

<%@ page language="java" contenttype="text/html; charset=utf-8"

pageencoding="utf-8"%>

<!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/tr/html4/loose.dtd">

<html>

<head>

<meta http-equiv="content-type" content="text/html; charset=utf-8">

<title>generic error page of jerry</title>

</head>

<body>

<h2>unknown error occured, please contact wang, jerry.</h2>

</body>

</html>

现在可以做测试了。我之前通过下列语句抛了一个异常:

throw new exception("generic exception raised by jerry");

这个异常成功地被我自己实现的异常处理类捕捉到,并显示出我自定义的异常显示页面:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网