目录
[1. 注解使用示例](#1. 注解使用示例)
[1.1 使用@Controller注解](#1.1 使用@Controller注解)
[1.2 使用@RestController注解](#1.2 使用@RestController注解)
[1.3 使用@Controller与@ResponseBody注解](#1.3 使用@Controller与@ResponseBody注解)
[2. 关于ResponseBody注解](#2. 关于ResponseBody注解)
前文已经介绍过使用@Controller注解向前端返回一个HTML页面,接下来将介绍向前端返回数据。
关于@Controller和@RestController的区别与联系,本专栏已有介绍,如需要请查看下文:
【Spring MVC】_SpringMVC项目返回静态页面_mvc 返回当前页面-CSDN博客https://blog.csdn.net/m0_63299495/article/details/138230689简单概括:返回视图使用@Controller,
返回数据使用@RestController 或 @Controller与@ResponseBody;
在本专栏介绍SpringMVC项目传参问题时,其实一直在使用@RestController注解向前端返回数据,本篇仍做简单示例:
1. 注解使用示例
1.1 使用@Controller注解
.java文件内容如下:
java
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/return")
@Controller
public class ReturnController {
@RequestMapping("/returnData")
public String returnData(){
return "Return as Data.";
}
}
运行启动类,测试结果如下:
由于使用了@Controller注解,则返回视图,
故而在static路径下查找"Return as Data"的视图,查询未果故而报404错误;
1.2 使用@RestController注解
.java文件内容如下:
java
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/return")
@RestController
public class ReturnController {
@RequestMapping("/returnData")
public String returnData(){
return "Return as Data.";
}
}
运行启动类,测试结果如下:
1.3 使用@Controller与@ResponseBody注解
.java文件内容如下:
java
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/return")
@Controller
@ResponseBody
public class ReturnController {
@RequestMapping("/returnData")
public String returnData(){
return "Return as Data.";
}
}
运行启动类,测试结果如下:
2. 关于ResponseBody注解
查看源码:
@ResponseBody注解就可以修饰类,也可以用于修饰方法;
修饰类的时候表示:这个类下的所有方法返回的均为数据;
修饰方法时:表示该方法返回的是数据;
如果一个类中所有的方法都需要返回数据,就可以把该注解加在类上;
如果一个类中既有方法返回数据,又有方法返回页面,则在返回数据的方法上加该注解即可;