`

springMVC 自定义400或404页面/响应

阅读更多
摘要: SpringMVC 自带的400或404 页面都是网页,不太适用于客户端需要的json数据

SpringMVC 自带的400404 页面都是网页,不太适用于客户端需要的json数据,

默认的404:

 

默认的400页面:

如何实现对这些错误的响应自定义呢?

定义一个 ControllerAdvice 类:

在其中添加如下两个方法,分别响应400和404:

/***
     * 响应400错误
     * @param ex
     * @param session
     * @param request
     * @param response
     * @return
     */
    @ExceptionHandler(org.springframework.beans.TypeMismatchException.class)
    public String handle400Exception2(org.springframework.beans.TypeMismatchException ex, HttpSession session, HttpServletRequest request, HttpServletResponse response) {
        String respCode = "400";
        logger.error(respCode, ex);
        LogicBusinessException logicBusinessException = new LogicBusinessException();
        logicBusinessException.setErrorCode(respCode);
        logicBusinessException.setErrorMessage(ex.getValue() + " " + ex.getMessage());
        BusinessExceptionUtil.dealException(logicBusinessException, response);
        return null;
    }

    /***
     * 响应404 错误
     * @param ex
     * @param session
     * @param request
     * @param response
     * @return
     */
    @ExceptionHandler(org.springframework.web.servlet.NoHandlerFoundException.class)
//org.springframework.web.servlet.NoHandlerFoundException: No handler found for GET /agent2/follow/query/json, headers={host=[127.0.0.1:8080], connection=[keep-alive], upgrade-insecure-requests=[1]}
    public String handleNotFound404Exception2(org.springframework.web.servlet.NoHandlerFoundException ex, HttpSession session, HttpServletRequest request, HttpServletResponse response) {
        String respCode = "404";
        logger.error(respCode, ex);
        LogicBusinessException logicBusinessException = new LogicBusinessException();
        logicBusinessException.setErrorCode(respCode);
        logicBusinessException.setErrorMessage(ex.getRequestURL() + " " + SystemHWUtil.splitAndFilterString(ex.getMessage(), 60));
        BusinessExceptionUtil.dealException(logicBusinessException, response);
        return null;
    }

 

我的处理方法是返回json,结果:

{
  "result": false,
  "param": null,
  "errorCode": "404",
  "value": null,
  "error": {
    "code": "404",
    "hint": null,
    "msg": "/cooperate2/myReceived/listfilter/json No handler found for GET /cooperate2/myReceived/listfilter/j......"
  },
  "extraInfo": null
}

 

各位可以自定义我代码中的BusinessExceptionUtil.dealException 方法.

我在码云的代码库:

https://gitee.com/kunlunsoft/inetAdress_socket

https://gitee.com/kunlunsoft/stub_test

 

 

0
0
分享到:
评论

相关推荐

    SpringMVC自定义多视图

    视图实例可以是任何形式的,如FreeMarker模板、Thymeleaf页面、或者是自定义的HTTP响应构建器。 在处理多视图时,我们可以基于请求的参数、请求头或者URL路径来决定返回哪种视图。例如,如果请求包含一个`Accept`头...

    springmvc-helloworld

    4. **ViewResolver**:根据 Model 数据解析出对应的视图,如 JSP 页面或 Thymeleaf 模板。 ### 二、环境搭建 1. **添加依赖**:在 Maven 或 Gradle 项目中,引入 SpringMVC 相关依赖。对于 Maven,可以在 `pom.xml...

    SpringMVC Demo_java_springmvc_DEMO_

    7. **异常处理**:SpringMVC允许自定义全局或特定异常处理器,可以捕获和处理程序运行时可能出现的异常,将其转换为适当的HTTP响应。 8. **国际化与本地化**:SpringMVC支持多语言环境,通过资源文件配置,可以提供...

    SpringMVC学习编程代码

    对于异常处理,SpringMVC提供了`@ExceptionHandler`注解,可以用来捕获并处理特定类型的异常,创建统一的错误页面或返回JSON响应。 在实际项目中,我们可能还需要配置拦截器(Interceptor),它们可以对请求和响应...

    SpringMVC demo 完整源码实例下载.zip

    GlobalExceptionResolver或@ControllerAdvice注解可以捕获并处理特定类型的异常,提供友好的错误页面或JSON响应。 拦截器是SpringMVC中的另一个强大特性,它可以增强应用的功能,如权限验证、日志记录、性能统计等...

    SpringMVC 开发接口demo

    - SpringMVC还支持自定义错误页面,通过`<error-page>`标签在`web.xml`中配置。 7. **单元测试** - SpringMVC提供了`MockMvc`工具,允许开发者在不依赖服务器的情况下,对Controller进行单元测试。 8. **整合...

    SpringMVC+Spring+MyBatis整合完整版Web实例(附数据)

    在现代Java Web开发中,SpringMVC、Spring和MyBatis是三个非常重要的框架,它们分别负责不同的职责:SpringMVC作为表现层框架,处理HTTP请求和响应;Spring作为应用上下文框架,提供依赖注入和面向切面编程等功能;...

    springMVC解决中文乱码

    解决 SpringMVC 中的中文乱码问题可以通过多种方法来实现,包括在 web.xml 文件中配置字符编码、使用注解配置字符编码、使用 CharacterEncodingFilter 或者自定义 Filter 等。这些方法都可以有效地解决中文乱码问题...

    java springmvc

    **SpringMVC详解** SpringMVC是Spring框架的一部分,它是一个模型-视图-控制器(MVC)架构的实现,用于构建Web应用程序。SpringMVC通过解耦控制器、业务逻辑和服务层,使得开发者可以更专注于应用程序的核心功能。...

    尚硅谷SpringMVC部分全套教学文档笔记

    - 可以定义一个全局的异常处理器,处理所有Controller中抛出的异常,提供统一的错误页面或JSON响应。 通过以上知识点的学习,读者可以对SpringMVC有深入的理解,能够熟练地开发基于SpringMVC的Java Web应用程序。...

    springMVC-个人学习笔记.docx下载

    Controller 是业务逻辑的处理者,通常由开发者自定义实现,负责处理请求并构建响应。 在配置方面,SpringMVC 的初始化需要引入必要的 jar 包。对于 spring3.2.3 版本,除了 Spring 自身的库,还需要 Commons 库,如...

    spring MVC所需jar包和filter的配置

    - JSTL:`jstl.jar`和`javax.servlet.jsp.jstl.jar`,用于在JSP页面中执行标签库,如 `<c:out>` 或 `<fmt:formatDate>`。 - JSON处理:`json-lib.jar`(或其他JSON库,如Gson或Jackson),如果需要在前后端之间...

    springmvc 框架

    - **DispatcherServlet**:作为SpringMVC的前端控制器,负责接收请求,调度处理器并返回响应。 - **Model**:数据模型,通常由业务对象或数据访问对象(DAO)组成,用于存储应用数据。 - **View**:视图负责渲染...

    一个简单的springMVC入门项目

    SpringMVC是一个基于Java的轻量级Web应用框架,它为构建RESTful应用程序提供了强大的支持。这个名为"一个简单的springMVC入门项目"的压缩包文件可能...对于想要学习或提升SpringMVC技能的人来说,这是一个很好的起点。

    SpringMVC典型实例

    通过@ControllerAdvice和@ExceptionHandler注解,可以定义一个类来处理特定类型的异常,并返回自定义的错误页面或JSON响应。 7. **视图解析**:SpringMVC使用ViewResolver来解析视图,常见的如JSTL、Thymeleaf和...

    吴天雄--SpringMVC笔记.doc

    【SpringMVC 知识点详解】 SpringMVC 是一个基于 Java 的轻量级 Web 请求驱动框架,它属于 Spring Framework 的一部分,旨在简化 Web 应用的开发。SpringMVC 以其灵活性、高性能和易用性,成为了当今最主流的 MVC ...

    SpringMVC 入门教程.pdf

    - 可以通过 `@ExceptionHandler` 注解自定义异常处理,提供统一的错误页面。 11. **视图解析器(ViewResolver)** - 视图解析器负责根据控制器返回的逻辑视图名找到对应的物理视图。 12. **国际化与主题支持** ...

    精通SpringMVC

    7. **拦截器**:SpringMVC允许开发者自定义拦截器,实现预处理和后处理逻辑,如权限验证、日志记录等。拦截器通过InterceptorRegistry进行注册。 8. **异常处理**:SpringMVC提供了统一的异常处理机制,通过@...

    SpringMVC示例

    通过`HandlerInterceptor`接口或`@Interceptor`注解实现自定义拦截器。 **8. 异常处理** SpringMVC允许我们定义全局的异常处理器,通过`@ExceptionHandler`注解处理特定的异常,或者通过`@ControllerAdvice`注解...

    使用注解SpringMVC从页面导出Excel和word文档的使用的jar包——使用ExportExcel工具类.rar

    在SpringMVC框架中,开发人员经常需要处理数据导出的功能,例如将用户在网页上的数据导出为Excel或Word文档。本教程将详细介绍如何利用注解和ExportExcel工具类来实现这一目标。 首先,我们需要了解SpringMVC中的...

Global site tag (gtag.js) - Google Analytics