返回前端数据

在前后端分离的开发模式中,后端通常通过返回数据而非视图来响应前端请求。Spring MVC提供了`@ResponseBody`和`@RestController`注解来实现这一功能。`@ResponseBody`注解可以应用在类或方法上,使得方法返回值直接作为HTTP响应体的内容。而`@RestController`是`@Controller`和`@ResponseBody`的组合,简化了配置。对于JSON转换,Spring Boot利用Jackson库自动将Java对象转换为JSON字符串,方便前后端数据交换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

返回前端数据

当我们在处理前端请求时,我们不想返回一个视图,也不想返回一个静态资源,而是想要返回数据,这时候该怎么做呢?实际上这种情况会更加常见,因为在前后端分离的时代,往往不会将页面和静态资源放在后端项目中,后端只负责数据的处理

@ResponseBody

我们只需要在Controller类上添加一个@ResponseBody注解,既可以使类中所有的方法返回字符串数据,而不走视图映射

@Controller
@ResponseBody
public class MyController {

    @RequestMapping("/test")
    public String test(){
        return "SUCCESS";
    }
}

测试结果如下

在这里插入图片描述

Spring MVC返回了一个"SUCCESS"字符串,而不是返回一个命名为"SUCCESS"的页面

@ResponseBody不仅可以添加在Controller类上,也可以添加在方法上,这样添加了该注解的方法会返回字符串数据,而没有添加该的方法会返回视图

@Controller
public class MyController {

    @ResponseBody
    @RequestMapping("/test1")
    public String test1(){
        return "SUCCESS";//返回字符串
    }

    @RequestMapping("/test2")
    public String test2(){
        return "/test.html";//返回视图
    }
}

@RestController

还有一个注解@RestController也可以帮我们实现同样的功能,这个注解更加常用,打开这个注解可以发现这其实是@Controller@ResponseBody的组合注解

在这里插入图片描述

使用的时候直接在Controller类上添加即可,@Controller注解也不需要

@RestController
public class MyController {

    @RequestMapping("/test")
    public String test(){
        return "SUCCESS";
    }
}

JSON转换

前后端数据交换中,最常用的格式就是JSON字符串,Spring Boot帮我们做好了Java对象和JSON字符串直接的转换,如果我们需要返回一个JSON字符串,只需要将自定义对象直接返回即可,默认会使用Jackson工具转换成JSON

首先我们定义一个自定义Person类

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Person {

    private String name;
    private int age;
}

然后Controller类中的方法不以String类型为返回值,而是返回一个Person类

@RestController
public class MyController {

    @RequestMapping("/test")
    public Person test(){
        return new Person("cong", 18);
    }
}

测试结果如下

在这里插入图片描述

可以看到Spring Boot自动帮我们做了JSON转换,返回了Person对象的JSON字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值