Springboot多种请求参数

server/2024/9/24 21:47:44/

        Springboot中有多种请求参数:简单参数、实体对象参数、数组、集合参数、日期时间参数、json参数……下列代码为每一种参数都写了一个简单的例子

java">package com.wzb;import com.wzb.pojo.Student;
import com.wzb.pojo.User;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;// RestController注解必须要
@RestController
public class SimpleParam {
//    @RequestMapping("/simpleParam")
//    public String simpleParam(HttpServletRequest request) {
//        String name = request.getParameter("name");
//        String ageStr = request.getParameter("age");
//        int age = Integer.parseInt(ageStr);
//        System.out.println(name + ": " + age);
//        return "OK";
//    }// 简化写法/* 成功与否和函数名无关,主要是@RequestMapping("/getMessage")要写正确 *//* 但是如果要简化写法,则函数参数名字必须和请求的名字一样,否则将出现null */@RequestMapping("/simpleParam")public String A(String name, int age) {System.out.println(name + ": " + age);return "OK";}/* 不推荐写法:参数名字和请求的名字不一样,但是可以用@RequestParam完成映射(建议别这么写) */
//    public String simpleParam(@RequestParam(name = "name")String userName, Integer age) {
//        System.out.println(userName + ": " + age);
//        return "OK";
//    }/* 传递实体对象 *//* 但是请求的名字也必须和类中的属性保持一致 */@RequestMapping("/simplePojo")public String simpleParam(User user) {System.out.println(user);return "OK";}/* 传递复杂的实体对象 *//* 请求参数名和形参对象属性相同,按照对象层次结构关系可接收嵌套的POJO属性参数 *//* 如:name=tom&age=18&address.province=chongqing&address.city=chongqing */@RequestMapping("/complexPojo")public String simplePojo(Student student) {System.out.println(student);return "OK";}/* 数组集合参数 *//* 数组参数 */// 假如有多个一样的请求参数,那么可以用数组来接收,数组名字必须和请求参数相同@RequestMapping("/arrayParam")/* 假设传递hobby,有多个hobby,那么就可以用数组接收 */public String arrayParam(String[] hobby) {// 使用Arrays中的toString方法将数组的内容输出System.out.println(Arrays.toString(hobby));return "OK";}/* 集合参数 */// 1.因为Spring默认是用数组来接收类似的请求参数,所以说想要用List集合,前面必须加上@RequestParam注解// 不加@RequestParam则会严重报错500// 2.和数组一样,集合的名字也必须和请求参数一致@RequestMapping("/listParam")public String listParam(@RequestParam List<String> hobby) {System.out.println(hobby);return "OK";}/* 日期时间参数 */// 1.用LocalDateTime类作为参数// 2.用@DateTimeFormat中的pattern限定时间的格式@RequestMapping("/dateParam")public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime) {System.out.println("现在的时间是: " + updateTime);return "OK";}/* json参数 */// 1.json请求参数必须用post发送// 2.用实例对象接收json参数,实例对象中的属性必须和json的key值一一对应@RequestMapping("/jsonParam")public String jsonParam(@RequestBody Student student) {System.out.println(student);return "OK";}
}


http://www.ppmy.cn/server/121519.html

相关文章

java算法OJ(1)位运算

目录 1.前言 2.正文 2.1位运算符号 2.1俩数相除 2.1.1题目 2.1.2示例 2.1.3题解 2.2二进制求和 2.2.1题目 2.2.2示例 2.2.3题解 2.3只出现一次的数字 2.3.1题目 2.3.2示例 2.3.3题解 2.4只出现一次的数字&#xff08;进阶版&#xff09; 2.4.1题目 2.4.2示例…

C#用SDK打开海康工业相机,callback取图Bitmap格式,并保存

上次写了python版本的,但是python虽好不方便发布,她带着重重的解释器有时候不方便玩耍.于是C#来了哦. C#图像一般用Bitmap表示,所以完全C#就够,别的格式可以自行想转换. 命令行哦,没界面. MVCamera.cs从MVS示例里面添加到项目中,using MvCamCtrl.NET; 就可以,不需要添加mvca…

搭建一个基于角色的权限验证框架

说明&#xff1a;基于角色的权限验证&#xff08;Role-Based Access Control&#xff0c;RBAC&#xff09;框架&#xff0c;是目前大多数服务端的登录校验框架。本文介绍如何快速搭建一个这样的框架&#xff0c;不用Shiro、Spring Security、Sa-Token这样的“大框架”实现。 R…

不靠学历,不拼年资,怎么才能月入2W?

之前统计局发布了《2023年城镇单位就业人员年平均工资情况》&#xff0c;2023年全国城镇非私营单位和私营单位就业人员年平均工资分别为120698元和68340元。也就是说在去年非私营单位就业人员平均月薪1W&#xff0c;而私营单位就业人员平均月薪只有5.7K左右。 图源&#xff1a;…

共享单车轨迹数据分析:以厦门市共享单车数据为例(六)

副标题&#xff1a;.基于POI数据的站点功能混合度探究——以厦门市为例 为了保证数据时间尺度上的一致性&#xff0c;我们从互联网上下载了2020年的POI数据&#xff0c;POI数据来源于高德地图 API平台,包括名称、大小类、地理坐标等。并将高德地图 POI数据的火星坐标 系 GCJ-0…

十一、SOA(SOA的具体设计模式)

我们现在深入学习SOA的具体设计模式。SOA架构中的设计模式主要是指导服务如何设计、实现、部署和管理&#xff0c;确保服务的松耦合、高可用性、扩展性和复用性。SOA常见的设计模式可以分为以下几类&#xff1a; 1. 服务层次设计模式 1.1. 基础服务&#xff08;Fundamental S…

OpenAI o1-preview和o1-mini现已在 GitHub Copilot和GitHub Models中提供

微软 GitHub 今天宣布在 GitHub Copilot和 Models 中提供两个新的 Open AI 模型&#xff1a;o1-preview 和 o1-mini。OpenAI 推出了新的 o1 系列 人工智能模型&#xff0c;旨在花更多时间思考后再做出反应。与以前的 OpenAI 模型相比&#xff0c;这些模型能在科学、编码和数学领…

C++从零实现Json-Rpc框架(项目介绍)

阅读导航 引言一、RPC简介二、框架设计分析三、框架功能分析四、项目技术选型五、总结 引言 本项目旨在开发一个功能全面的JSON-RPC框架&#xff0c;该框架不仅支持基础的远程过程调用&#xff08;RPC&#xff09;功能&#xff0c;还集成了服务注册与发现机制以及简单的发布订…