首页 > 其他分享 >Springboot多种请求参数

Springboot多种请求参数

时间:2024-09-18 23:53:26浏览次数:3  
标签:RequestMapping return String 请求 参数 import public Springboot

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

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";
    }
}

标签:RequestMapping,return,String,请求,参数,import,public,Springboot
From: https://blog.csdn.net/Aishangyuwen/article/details/142346699

相关文章

  • 多分录下推插件模板,亮点:只需配置好参数,代码无需改动
    多分录下推插件模板,金蝶云星空企业版亮点:只需配置好参数,代码无需改动usingKingdee.BOS.Core.Bill.PlugIn;usingKingdee.BOS.Core.Metadata;usingKingdee.BOS.ServiceHelper;usingKingdee.BOS.Util;usingSystem;usingSystem.ComponentModel;usingSystem.Data;nam......
  • APP支付宝SDK参数转换为H5 URL地址
    alipay_sdk=alipay-easysdk-java&app_id=xxxxxxxxxxx&biz_content=%7B%22body%22%3A%22FUNTASYISLAND%22%2C%22out_trade_no%22%3A%221836328097089097730%22%2C%22passback_params%22%3A%225%22%2C%22product_code%22%3A%22QUICK_MSECURITY_PAY%22%2C%22subject%22%3......
  • 基于Springboot+vue的音乐网站
    随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了音乐网站的开发全过程。通过分析音乐网站管理的不足,创建了一个计算机管理音乐网站的方案。文章介绍了音乐网站的系统分析部分,包括可行性分析等,系统设计部分主要介绍了系统功能......
  • java-基于springboot实现家教管理系统
    摘要传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装家教管理系统软件来发挥其高效地信息处理的作用,可以规范信息管理流程,让管理工作可以系统化和程序化,同时,家教管理系统的有效运......
  • 请求转发和重定向的区别
    今天讲一讲请求转发和重定向的区别,两者看起来其实很像,所以今天就好好区分一下两者的区别和使用场景。请求转发:请求转发和用户没有关系。对服务A发送的请求会被转发给另一个服务B,然后服务B响应给A,然后A再通过响应回来。响应码:2xx响应码,一般是200正常响应。URL:不会变化。......
  • 最终版本的pom.xml(springboot连接hive)
    1<?xmlversion="1.0"encoding="UTF-8"?>2<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"3xsi:schemaLocation="http://maven.apa......
  • springboot连接hive数据库的依赖配置
    pom.xml1<?xmlversion="1.0"encoding="UTF-8"?>2<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"3xsi:schemaLocation="http://......
  • springboot+vue疫情监控系统【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景近年来,全球范围内频繁爆发的疫情不仅严重威胁着人类生命健康,也对社会经济活动造成了巨大冲击。随着信息技术的飞速发展,构建高效、智能的疫情监控系统成为应对疫情挑战、保障公共卫生安全的重要手段。该系统旨在通过集成多源数据、运用......
  • springboot+vue疫情监控平台【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着全球疫情的不断演变,高效、精准的疫情监控成为了保障公共卫生安全、快速响应疫情变化、减少社会经济损失的关键。传统的手工记录与信息传递方式已难以满足当前复杂多变的疫情防控需求。因此,构建一个集数据采集、分析、预警、反馈于......
  • springboot+vue疫情环境下校园宿舍管理系统【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着全球疫情的持续影响,校园作为人员密集、流动性大的特殊场所,其疫情防控工作显得尤为重要。传统的校园宿舍管理模式在面对疫情挑战时,暴露出信息更新滞后、管理效率低下、健康监测不全面等问题。特别是在学生体温监测、宿舍出入管理、......