SpringBoot与Springmvc使用统一Error界面的区别

众所周知,springmvc里面配置统一的错误界面需要在web.xml里面配置,大概是这样(这个是Springmvc)

(这个才是SpringBoot)SpringBoot基本上是不需要一些配置文件的,只需要写一个 ErrorPageConfig 的java类,然后创建一个indexError的jsp或者index文件,将其关联起来即可,无需配置

这里贴上我自己的文件路径

错误界面indexError存储路径

ErrorPageConfig路径

接下来看下两个文件内部的样子

这个是ErrorPageConfig.java

import org.springframework.boot.web.servlet.ErrorPage;
import org.springframework.boot.web.servlet.ErrorPageRegistrar;
import org.springframework.boot.web.servlet.ErrorPageRegistry;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpStatus;


/**
 * @描叙:  错误页面配置
 */
@Configuration
public class ErrorPageConfig implements ErrorPageRegistrar {

    @Override
    public void registerErrorPages(ErrorPageRegistry registry) {
        /*1、按错误的类型显示错误的网页 BAD_REQUEST(400, "Bad Request"),
    UNAUTHORIZED(401, "Unauthorized"),
    PAYMENT_REQUIRED(402, "Payment Required"),
    FORBIDDEN(403, "Forbidden"),INTERNAL_SERVER_ERROR(500, "Internal Server Error"),
    NOT_FOUND(404, "Not Found"),*/
        /*错误类型为404,找不到网页的,默认显示404.html网页*/
        ErrorPage e404 = new ErrorPage(HttpStatus.NOT_FOUND, "/webcontent/birt/pages/common/indexError.jsp");
        /*错误类型为500,表示服务器响应错误,默认显示500.html网页*/
        ErrorPage e500 = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/webcontent/birt/pages/common/indexError.jsp");
        ErrorPage e403 = new ErrorPage(HttpStatus.FORBIDDEN, "/webcontent/birt/pages/common/indexError.jsp");
        registry.addErrorPages(e403 ,e404, e500);
    }
}

这个是indexError.jsp

<%@page pageEncoding="UTF-8" isErrorPage="true" import="java.io.*"%>  

<%
String path = request.getContextPath();
// String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
String basePath =path+"/";
// response.sendRedirect("default.action");
    String ssoErrorMsg = "抱歉,你要访问的页面不存在或已被删除!";
    Object ssoStatusCode = request.getAttribute("ssoStatusCode");
    if( "error".equals(ssoStatusCode) ) {
        ssoErrorMsg = (String) request.getAttribute("ssoErrorMsg");
        request.setAttribute("ssoStatusCode", "");
    }
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0029)http://news.ifeng.com/jhghdhd -->
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>页面没有找到 </title>
<style type="text/css">
body{ margin:0px; padding:0px; background:#fff;}
.main{ width:998px; height:525px; border:1px solid #d9d9d9; margin:10px auto; background:url(<%=basePath%>images/bkpic.jpg) no-repeat 156px 126px;}
.main .mat{ width:552px; margin:146px 0px 0px 235px; }
.main .mat p{ font:bold 16px/24px simsun; text-align:center; margin-bottom:80px;}
.main .mat p span{ color:#ba2835; padding-right:10px;}
.main .mat .tit{ font:normal 12px simsun; color:#515151; padding-left:20px; height:28px; background:url(<%=basePath%>images/bklin.gif) repeat-x left bottom;}
.main .mat ul{ margin:5px 20px; padding:0px;}
.main .mat ul li{ background:url(<%=basePath%>images/picli.gif) no-repeat left center; height:20px; list-style:none; font:normal 14px/20px simsun; padding-left:12px;}
a:link{color:#004276; text-decoration:none;}
a:visited{color:#004276; text-decoration:none;}
a:hover{text-decoration:underline;color:#ba2636}
</style>
</head>
<body>
<div class="main">
    <div class="mat">
        <p> <%=ssoErrorMsg%><br><span id="xm">10</span>秒后返回首页</p>
        <div class="tit">您还可以:</div>
        <ul>
            <li><a href="<%=basePath%>default.action">进入首页</a></li>
            <li><a href="javascript:history.go(-1);">返回上一页</a></li>
        </ul>
    </div>
</div>
<script type="text/javascript">
	var i = 9;
	var intervalid;
	var xm = document.getElementById("xm");
	intervalid = setInterval("fun()", 1000);
	function fun() {
		if (i == 0){
            window.location.href = <%=basePath%>+"default.action";
            clearInterval(intervalid);
		    <% ssoErrorMsg = "抱歉,你要访问的页面不存在或已被删除!"; %>
		}
		xm.innerHTML = i;
		i--;
	}
</script>

</body></html>

拿过去直接就能用了,可以试试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值