摘要: SpringMVC 自带的400或404 页面都是网页,不太适用于客户端需要的json数据
SpringMVC 自带的400或404 页面都是网页,不太适用于客户端需要的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
相关推荐
视图实例可以是任何形式的,如FreeMarker模板、Thymeleaf页面、或者是自定义的HTTP响应构建器。 在处理多视图时,我们可以基于请求的参数、请求头或者URL路径来决定返回哪种视图。例如,如果请求包含一个`Accept`头...
4. **ViewResolver**:根据 Model 数据解析出对应的视图,如 JSP 页面或 Thymeleaf 模板。 ### 二、环境搭建 1. **添加依赖**:在 Maven 或 Gradle 项目中,引入 SpringMVC 相关依赖。对于 Maven,可以在 `pom.xml...
7. **异常处理**:SpringMVC允许自定义全局或特定异常处理器,可以捕获和处理程序运行时可能出现的异常,将其转换为适当的HTTP响应。 8. **国际化与本地化**:SpringMVC支持多语言环境,通过资源文件配置,可以提供...
对于异常处理,SpringMVC提供了`@ExceptionHandler`注解,可以用来捕获并处理特定类型的异常,创建统一的错误页面或返回JSON响应。 在实际项目中,我们可能还需要配置拦截器(Interceptor),它们可以对请求和响应...
GlobalExceptionResolver或@ControllerAdvice注解可以捕获并处理特定类型的异常,提供友好的错误页面或JSON响应。 拦截器是SpringMVC中的另一个强大特性,它可以增强应用的功能,如权限验证、日志记录、性能统计等...
- SpringMVC还支持自定义错误页面,通过`<error-page>`标签在`web.xml`中配置。 7. **单元测试** - SpringMVC提供了`MockMvc`工具,允许开发者在不依赖服务器的情况下,对Controller进行单元测试。 8. **整合...
在现代Java Web开发中,SpringMVC、Spring和MyBatis是三个非常重要的框架,它们分别负责不同的职责:SpringMVC作为表现层框架,处理HTTP请求和响应;Spring作为应用上下文框架,提供依赖注入和面向切面编程等功能;...
解决 SpringMVC 中的中文乱码问题可以通过多种方法来实现,包括在 web.xml 文件中配置字符编码、使用注解配置字符编码、使用 CharacterEncodingFilter 或者自定义 Filter 等。这些方法都可以有效地解决中文乱码问题...
- 可以定义一个全局的异常处理器,处理所有Controller中抛出的异常,提供统一的错误页面或JSON响应。 通过以上知识点的学习,读者可以对SpringMVC有深入的理解,能够熟练地开发基于SpringMVC的Java Web应用程序。...
**SpringMVC详解** SpringMVC是Spring框架的一部分,它是一个模型-视图-控制器(MVC)架构的实现,用于构建Web应用程序。SpringMVC通过解耦控制器、业务逻辑和服务层,使得开发者可以更专注于应用程序的核心功能。...
Controller 是业务逻辑的处理者,通常由开发者自定义实现,负责处理请求并构建响应。 在配置方面,SpringMVC 的初始化需要引入必要的 jar 包。对于 spring3.2.3 版本,除了 Spring 自身的库,还需要 Commons 库,如...
- JSTL:`jstl.jar`和`javax.servlet.jsp.jstl.jar`,用于在JSP页面中执行标签库,如 `<c:out>` 或 `<fmt:formatDate>`。 - JSON处理:`json-lib.jar`(或其他JSON库,如Gson或Jackson),如果需要在前后端之间...
- **DispatcherServlet**:作为SpringMVC的前端控制器,负责接收请求,调度处理器并返回响应。 - **Model**:数据模型,通常由业务对象或数据访问对象(DAO)组成,用于存储应用数据。 - **View**:视图负责渲染...
SpringMVC是一个基于Java的轻量级Web应用框架,它为构建RESTful应用程序提供了强大的支持。这个名为"一个简单的springMVC入门项目"的压缩包文件可能...对于想要学习或提升SpringMVC技能的人来说,这是一个很好的起点。
通过@ControllerAdvice和@ExceptionHandler注解,可以定义一个类来处理特定类型的异常,并返回自定义的错误页面或JSON响应。 7. **视图解析**:SpringMVC使用ViewResolver来解析视图,常见的如JSTL、Thymeleaf和...
【SpringMVC 知识点详解】 SpringMVC 是一个基于 Java 的轻量级 Web 请求驱动框架,它属于 Spring Framework 的一部分,旨在简化 Web 应用的开发。SpringMVC 以其灵活性、高性能和易用性,成为了当今最主流的 MVC ...
- 可以通过 `@ExceptionHandler` 注解自定义异常处理,提供统一的错误页面。 11. **视图解析器(ViewResolver)** - 视图解析器负责根据控制器返回的逻辑视图名找到对应的物理视图。 12. **国际化与主题支持** ...
7. **拦截器**:SpringMVC允许开发者自定义拦截器,实现预处理和后处理逻辑,如权限验证、日志记录等。拦截器通过InterceptorRegistry进行注册。 8. **异常处理**:SpringMVC提供了统一的异常处理机制,通过@...
通过`HandlerInterceptor`接口或`@Interceptor`注解实现自定义拦截器。 **8. 异常处理** SpringMVC允许我们定义全局的异常处理器,通过`@ExceptionHandler`注解处理特定的异常,或者通过`@ControllerAdvice`注解...
在SpringMVC框架中,开发人员经常需要处理数据导出的功能,例如将用户在网页上的数据导出为Excel或Word文档。本教程将详细介绍如何利用注解和ExportExcel工具类来实现这一目标。 首先,我们需要了解SpringMVC中的...