【Spring MVC】_SpringMVC项目返回数据

目录

[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注解就可以修饰类,也可以用于修饰方法

修饰类的时候表示:这个类下的所有方法返回的均为数据;

修饰方法时:表示该方法返回的是数据;

如果一个类中所有的方法都需要返回数据,就可以把该注解加在类上;

如果一个类中既有方法返回数据,又有方法返回页面,则在返回数据的方法上加该注解即可;

相关推荐
Knight_AL3 分钟前
Java 17 新特性深度解析:记录类、密封类、模式匹配与增强的 switch 表达式对比 Java 8
java·开发语言
最贪吃的虎7 分钟前
Spring Boot 自动装配(Auto-Configuration)深度实现原理全解析
java·运维·spring boot·后端·mysql
Ahuuua10 分钟前
Spring Bean作用域深度解析
java·后端·spring
大学生资源网10 分钟前
基于Vue的网上购物管理系统的设计与实现(java+vue+源码+文档)
java·前端·vue.js·spring boot·后端·源码
qq_124987075313 分钟前
基于微信小程序的私房菜定制上门服务系统(源码+论文+部署+安装)
java·spring boot·微信小程序·小程序·毕业设计·毕设
a努力。14 分钟前
京东Java面试被问:Fork/Join框架的使用场景
java·开发语言·面试
有一个好名字29 分钟前
Spring AI 工具调用(Tool Calling):解锁智能应用新能力
java·人工智能·spring
蓝影铁哥29 分钟前
浅谈国产数据库OceanBase
java·linux·数据库·oceanbase
五阿哥永琪29 分钟前
SpringAOP的底层实现原理
java·spring
鹿野素材屋37 分钟前
帧同步场景下的确定性随机数生成:基于时间戳的固定种子设计与实践
java·开发语言