javaweb请求响应+@ResponseBody注解

这里用了一款接口测试软件postman

简单参数

SpringBoot方式

简单参数:参数名与形参变量名相同,定义形参即可接收参数。

请求参数名与方法形参变量名相同

会自动进行类型转换

java 复制代码
package com.example.springbootwebreqresp.Controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class RequestController {
    @RequestMapping("/simpleParm")
    public String simpleParm(String name,Integer age){
        System.out.println(name+":"+age);
        return "OK";
    }
}

postman接口测试👇

控制台也输出了获取的

下面是post请求

依旧可以返回

如果参数对应不上呢?👇

这说明只要参数对应的上就能接收成功,参数对应不上接收就不成功,但不会报错

如果方法形参名称与请求参数名称不匹配,可以使用 @Requestparam 完成映射。

@RequestParam中的required属性默认为true,代表该请求参数必须传递,如果不传递将报错。如果该参数是可选的,可以将required属性设置为false。

我给name前面的√取消掉

客户端错误

@RequestParam中的required属性默认为true,代表请求参数必须传递,如果不传递将报错。

报错👇

required👇

这样去测试的话👇

就不会报错了

只获取了age的值

实体参数

简单实体对象:

请求参数名与形参对象属性名相同,定义POJO接收即可

java 复制代码
@RestController
public class RequestController {
   

    @RequestMapping("/simplePojo")
    public String simplePojo(User user){
        System.out.println(user);
        return "OK";
    }
}

复杂实体对象:

请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套POJ0属性参数。

java 复制代码
@RestController
public class RequestController {

    @RequestMapping("/complexPojo")
    public String complexPojo(User user){
        System.out.println(user);
        return "OK";
    }
}

数组集合参数

数组参数

java 复制代码
@RestController
public class RequestController {
    @RequestMapping("/arrParam")
    public String arrParam(String[] hobby){
        System.out.println(Arrays.toString(hobby));
        return "OK";
    }
}

集合参数

请求参数名与形参集合名称相同且请求参数为多个,@RequestParam 绑定参数关系

java 复制代码
@RequestMapping("/listParam")
    public String listParam(@RequestParam List<String> hobby){
        System.out.println(hobby);
        return "OK";
    }

日期参数

日期参数:使用 @DateTimeFormat 注解完成日期参数格式转换

java 复制代码
 @RequestMapping("/dateParam")
    public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")LocalDate updateTime){
        System.out.println(updateTime);
        return "OK";
    }

json参数

java 复制代码
  @RequestMapping("/jsonParam")
    public String jsonParam(@RequestBody User user){
        System.out.println(user);
        return "OK";
    }

路径参数

路径参数:通过请求URL直接传递参数,使用{..}来标识该路径参数,需要使用 @PathVariable 获取

java 复制代码
@RequestMapping("/path/{id}")
    public String pathParam(@PathVariable Integer id){
        System.out.println(id);
        return "OK";
    }

传递多个路径参数 👇

java 复制代码
 @RequestMapping("/path/{id}/{name}")
    public String pathParam2(@PathVariable Integer id,@PathVariable String name){
        System.out.println(id+":"+name);
        return "OK";
    }

@ResponseBody 注解

类型:方法注解、类注解

位置:Controller方法上/类上

作用:将方法返回值直接响应,如果返回值类型是实体对象/集合,将会转换为JSON格式

响应说明:@RestController=@Controller+ @ResponseBody;

相关推荐
老华带你飞6 分钟前
动物救助|流浪狗救助|基于Springboot+vue的流浪狗救助平台设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·流浪动物救助平台
Hernon8 分钟前
微服务架构设计:从零打造互联网车贷系统 —— 业务背景与架构蓝图
java·微服务·架构·微服务架构设计
9523611 分钟前
二叉平衡树
java·数据结构·学习·算法
Vic1010113 分钟前
Java正则表达式性能优化指南:编译开销、类加载与线程安全深度解析
java·性能优化·正则表达式
小二·20 分钟前
Spring框架入门:代理模式详解
java·spring·代理模式
Rock_yzh20 分钟前
LeetCode算法刷题——53. 最大子数组和
java·数据结构·c++·算法·leetcode·职场和发展·动态规划
简单的话*20 分钟前
Logback 日志按月归档并保留 180 天,超期自动清理的配置实践
java·前端·python
m***567221 分钟前
在Nginx上配置并开启WebDAV服务的完整指南
java·运维·nginx
Mr.朱鹏28 分钟前
RocketMQ可视化监控与管理
java·spring boot·spring·spring cloud·maven·intellij-idea·rocketmq
带刺的坐椅31 分钟前
Solon AI 开发学习9 - chat - 聊天会话(对话)的记忆与持久化
java·ai·llm·openai·solon·mcp