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;

相关推荐
程序员-珍4 分钟前
使用openapi生成前端请求文件报错 ‘Token “Integer“ does not exist.‘
java·前端·spring boot·后端·restful·个人开发
2401_8572979131 分钟前
招联金融2025校招内推
java·前端·算法·金融·求职招聘
福大大架构师每日一题42 分钟前
23.1 k8s监控中标签relabel的应用和原理
java·容器·kubernetes
金灰1 小时前
HTML5--裸体回顾
java·开发语言·前端·javascript·html·html5
菜鸟一皓1 小时前
IDEA的lombok插件不生效了?!!
java·ide·intellij-idea
爱上语文1 小时前
Java LeetCode每日一题
java·开发语言·leetcode
bug菌1 小时前
Java GUI编程进阶:多线程与并发处理的实战指南
java·后端·java ee
程序猿小D2 小时前
第二百六十九节 JPA教程 - JPA查询OrderBy两个属性示例
java·开发语言·数据库·windows·jpa
极客先躯2 小时前
高级java每日一道面试题-2024年10月3日-分布式篇-分布式系统中的容错策略都有哪些?
java·分布式·版本控制·共识算法·超时重试·心跳检测·容错策略
夜月行者3 小时前
如何使用ssm实现基于SSM的宠物服务平台的设计与实现+vue
java·后端·ssm