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;

相关推荐
会飞的大鱼人9 小时前
一文搞懂 Java HashSet:把它想成游乐园里只允许一次入场的盖章名单
java·开发语言·windows
AI_小站9 小时前
Loop Engineering又是啥?一文讲清企业Agent落地的四层工程进化论
java·人工智能·架构·prompt·大模型开发·智能体·大模型应用
jiay29 小时前
【.net10】顶级程序语句
java·开发语言
2601_9538246110 小时前
【计算机毕业设计】基于Spring Boot的画师接稿平台设计与实现
java·spring boot·后端
小宋102111 小时前
不用学算法也能玩转 AI?普通 Java 程序员转 AI 应用开发路线
java·人工智能·重构
我是唐青枫11 小时前
Java Jetty 实战详解:从嵌入式 HTTP 服务到 Spring Boot 容器替换
java
带刺的坐椅11 小时前
当所有人都在用 TS/Python 写 Agent,我们为什么坚持 Java
java·ai·solon·codex·opencode·soloncode
小王师傅6611 小时前
英语学习记
java·学习
早点睡啊Y12 小时前
深入学LangChain官方文档:Observability 与 Studio——先看清 Agent 到底做了什么
java·数据库·langchain
雨落在了我的手上12 小时前
Java数据结构(六):链表的介绍
java·开发语言·数据结构