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;

相关推荐
小羊没烦恼!3 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
俊昭喜喜里3 天前
java中的继承和多态的区别
java
小羊没烦恼!3 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
譕痕3 天前
JSONObject与JSONArray封装数据格式区别
java·json
胡写代码3 天前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖3 天前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
此时不提桶,更待何时3 天前
01-06-A-JVM排查实战详解
java·jvm
vipxieliang3 天前
ValidX 在 DDD 领域驱动设计中的实践
java·spring boot
ba_pi3 天前
mysql 查询所有表名并授权
java
ProcessOn官方账号3 天前
java函数式编程--入门基础
java·编程·函数式编程