四时宝库

程序员的知识宝库

SpringMVC 方法四种类型返回值总结,你用过几种?

SpringMVC 现在算是 Java 领域的一个基础性框架了,很多人天天用,可是对于 SpringMVC 方法的返回值,你又是否完全清楚呢?今天松哥就来和大家聊一聊 SpringMVC 中四种不同类型的返回值,看看有没有 get 到你的知识盲点?

1. ModelAndView

以前前后端不分的情况下,ModelAndView 应该是最最常见的返回值类型了,现在前后端分离后,后端都是以返回 JSON 数据为主了。后端返回 ModelAndView 这个比较容易理解,开发者可以在 ModelAndView 对象中指定视图名称,然后也可以绑定数据,像下面这样:

springboot统一错误异常根据情况返回json或页面

实现方案

在请求control时加一个前置拦截器,在preHandle中得到HandlerMethod,判断请求的Controller的method的返回类型,
以及请求的Controller方法是否使用的@RestController或者@ResponBody注解。若满足以上条件则抛出异常时,
应该以json格式的报错信息,否则返回错误页面。
写一个拦截器类
/**
 * 判断Controller的返回类型,是json还是view
 */
@Component
public class MyExceptionPreHandleInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        if (!(handler instanceof HandlerMethod)) {
            return true;
        }
        
		
		//默认设置为页面返回模式
		request.setAttribute("my_return_is_view", true);
		
		
		if(hm.getBeanType().isAnnotationPresent(RestController.class)) {
			//有RestController的类注解的类里面的method一定是返回json
            request.setAttribute("my_return_is_view", false);
        }else{
			Method method = hm.getMethod();
			if (method.isAnnotationPresent(ResponseBody.class)) {
			//有ResponseBody的类注解的方法一定是返回json
				request.setAttribute("my_return_is_view", false);
			}
		}
        
       
        return true;
    }
}

都前后端分离了,咱就别做页面跳转了!统统 JSON 交互

推荐阅读:

SpringMVC-方法四种类型返回值总结,你用过几种?

SpringMVC 现在算是 Java 领域的一个基础性框架了,很多人天天用,可是对于 SpringMVC 方法的返回值,你又是否完全清楚呢?今天松哥就来和大家聊一聊 SpringMVC 中四种不同类型的返回值,看看有没有 get 到你的知识盲点?

1. ModelAndView

以前前后端不分的情况下,ModelAndView 应该是最最常见的返回值类型了,现在前后端分离后,后端都是以返回 JSON 数据为主了。后端返回 ModelAndView 这个比较容易理解,开发者可以在 ModelAndView 对象中指定视图名称,然后也可以绑定数据,像下面这样:

JS类库Jquery(三): javascript跨域问题(JSONP解决)

一、什么是javascript跨域问题?

域:服务器域名,唯一标识(协议,域名,端口)必须保证一致,说明域相同

跨域:在一个服务器上,去访问另一个服务器上,并且得到另一个服务器返回回来的值,这就是javascript跨域,其实简单点,之前我们做的ajax,都是在同域中访问,现在只是访问的服务器变成了另外的,不是同一台了。仅此而已。但是这样一变,之前的代码就不能用了。

04,SpringMVC响应json格式数据(spring json处理)

(1)json依赖

SpringBoot 应用搭建之始终返回统一的JSON格式

SpringBoot 应用搭建之始终返回统一的JSON格式

之前的一篇文章:

蓝易云 - Servlet、HTTP详细解释!

Servlet与HTTP的关系详解

Servlet

如何优雅地读写HttpServletRequest和HttpServletResponse

最近很多交互要同原生的

Springboot API接口统一输出消息格式保持原接口返回值不变

环境:Springboot2.4.11


很多时候我们对接口的返回值都会做统一的处理,返回{code, message,data}等信息标识本次请求的处理结果,这统一的处理也都是在各自的Controller上做自行的处理。本篇内容告诉你如何通过ResponseBodyAdvice对象来实现对结果的统一处理,也就是说在Controller上我们不再对返回结果进行处理了,而是由统一的一个ControllerAdice Bean对象进行处理。这对我们的Controller接口来说可读性更强,也业务无关的东西一概不出现,同时代码也更加简洁。

<< < 1 2 3 4 5 > >>
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接