转转转![Spring MVC] - 500/404错误处理-SimpleMappingExceptionResolver

参考博客:

http://www.cnblogs.com/dongying/p/6129937.html

http://www.cnblogs.com/rollenholt/archive/2012/12/25/2832731.html

http://cgs1999.iteye.com/blog/1547197

我在项目中的使用:

1)404找不到:

web.xml中配置:

<!-- 404错误 -->
    <error-page>
       <error-code>404</error-code>
       <location>/WEB-INF/view/error/404.jsp</location>
    </error-page>

2)其他的异常,在springMVC中.xml配置:

<!-- 将Controller抛出的异常转到特定View, 保持SiteMesh的装饰效果 -->
    <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
        <property name="exceptionMappings">
            <props>
                <prop key="java.lang.Throwable">error/myException</prop>
            </props>
        </property>
         <!-- 默认错误页面,当找不到上面mappings中指定的异常对应视图时,使用本默认配置 -->
        <property name="defaultErrorView" value="error/myException"></property>
        <!-- 默认HTTP状态码 -->
        <property name="defaultStatusCode" value="500"></property>
    </bean> 

3)对应的异常页面:

myException.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%
    response.setStatus(200);
%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="resources/bootstrap/bootstrap.min.css">
    <title><spring:message code="exception"/></title>
</head>

<body>
    <h2><spring:message code="exception"/></h2>
</body>
<script src="resources/js/jquery.min.js"></script>
<script src="resources/bootstrap/bootstrap.min.js"></script>
</html>

404.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%
    response.setStatus(200);
%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="resources/bootstrap/bootstrap.min.css">
    <title><spring:message code="code404"/></title>
</head>

<body>
    <h5><spring:message code="code404"/></h5>
</body>
<script src="resources/js/jquery.min.js"></script>
<script src="resources/bootstrap/bootstrap.min.js"></script>
</html>

======================================================转载文章==========================================================================

Spring MVC中404 找不到页面错误可以直接使用web.xml中配置:

在<web-app/>节点内加入:

    <error-page>
        <error-code>404</error-code>
        <location>/WEB-INF/views/errors/404.jsp</location>
    </error-page>

500的运行时错误,可以使用Spring MVC的SimpleMappingExceptionResolver配置:

<!-- 全局异常配置 -->
    <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
        <property name="exceptionMappings">
            <props>
                <prop key="java.lang.Exception">errors/500</prop>
                <prop key="java.lang.Throwable">errors/500</prop>
            </props>
        </property>
        <property name="statusCodes">
            <props>
                <prop key="errors/500">500</prop>
            </props>
        </property>
        <!-- 设置日志输出级别,不定义则默认不输出警告等错误日志信息 -->
        <property name="warnLogCategory" value="WARN"></property>
        <!-- 默认错误页面,当找不到上面mappings中指定的异常对应视图时,使用本默认配置 -->
        <property name="defaultErrorView" value="errors/500"></property>
        <!-- 默认HTTP状态码 -->
        <property name="defaultStatusCode" value="500"></property>
    </bean>

对应500错误的view jsp页面:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!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>500 Error</title>
</head>
<body>
    <% Exception ex = (Exception)request.getAttribute("exception"); %>
    <H2>Exception: <%= ex.getMessage()%></H2>
    <P/>
    <% ex.printStackTrace(new java.io.PrintWriter(out)); %>
</body>
</html>

测试:

另外,也可以使用继承HandlerExceptionResolver来处理500的错误。

参考文章引用:

http://www.cnblogs.com/xguo/p/3163519.html

时间: 2024-10-25 20:18:48

转转转![Spring MVC] - 500/404错误处理-SimpleMappingExceptionResolver的相关文章

[Spring MVC] - 500/404错误处理

Spring MVC中404 找不到页面错误可以直接使用web.xml中配置: 在<web-app/>节点内加入: <error-page> <error-code>404</error-code> <location>/WEB-INF/views/errors/404.jsp</location> </error-page> 500的运行时错误,可以使用Spring MVC的SimpleMappingExceptionR

spring mvc 数据绑定 400错误

情景:使用在方法中绑定数据的时候,打开链接,出现400错误. @RequestMapping(value = "editItemSubmit") public String editItemSubmit(int id, Items item) { itemService.updateItemFromId(id, item); return "redirect:queryItemlList"; } public class Items { private int id

spring mvc 500错误Allocate exception for servlet AppService javax.naming.NamingException: Cannot create resource instance

头几天已经测试的完毕了,换了个目录出现这个问题 严重: Allocate exception for servlet AppService javax.naming.NamingException: Cannot create resource instance at org.apache.naming.factory.FactoryBase.getObjectInstance(FactoryBase.java:96) at javax.naming.spi.NamingManager.getO

Spring MVC + mybatis项目错误解决方案汇总

1.启动tomcat时,报java.lang.ClassNotFoundException: org.springframework.web.util.IntrospectorCleanupListener错误,如下图: 解决方法:项目 ->右键 -> 属性 -> Deployment Assembly -> add -> Java Build Path Entries -> next -> Maven Dependencies -> Finish ->

FreeMarker与Spring MVC 4结合错误:Caused by: java.lang.NoClassDefFoundError: org/springframework/ui/freemarker/FreeMarkerConfiguration

添加spring-context-support的依赖到POM: <!-- spring-context-support --> <!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support --> <dependency> <groupId>org.springframework</groupId> <artifactId>spr

atitit.404错误调查过程汇总

#----------jsp  head  errorPage="" del zeu ok le. #------resin server. 俩个应用配置到了相同的的目录.. paip.404err two app cfg  one same dir /  cant access /app1   only can access .. envi ..resin4.. 作者: 老哇的爪子Attilax 艾龙,  EMAIL:[email protected] 来源:http://blog.

atitit.404错误的排查流程总结

#----------jsp  head  errorPage="" del zeu ok le. #------resin 服务器配置问题.俩个应用配置到了同样的的文件夹.. paip.404err two app cfg  one same dir /  cant access /app1   only can access .. envi ..resin4.. 作者: 老哇的爪子Attilax 艾龙,  EMAIL:[email protected] 来源:http://blog

atitit.404错误的排查流程总结vOa6

1. 场景 1 1.1. 子应用猛个腊擦不能使用  404 兰.. 1 2. 服务器配置问题 2 2.1. 登录服务器管理子应用,查看应用是否启动okk???? 2 2.2. 80端口已经占用,实际访问的在的服务器端口 2 2.3. #----------jsp  head  errorPage="" 2 2.4. 应用冲突::同时部署了根应用and子应用.. 2 2.5. #------resin 服务器配置问题.俩个应用配置到了同样的的文件夹.. 2 2.6. #---------

Spring MVC 学习笔记(二)

6. 视图和视图解析器  ?  Spring MVC如何解析视图 ? 请求处理方法执行完成后,最终返回一个ModelAndView对象.对于那些返回String,View或ModeMap等类型的处理方法,spring MVC 都会在内部将它们装配成一个ModelAndView对象,它包含了逻辑名和模型对象的视图 ? Spring MVC 借助视图解析器(ViewResolver)得到最终的视图对象(View),最终的视图可以是JSP也可是Excell. JFreeChart等各种表现形式的视图