首页 > 其他分享 >SpringMVC接收请求参数

SpringMVC接收请求参数

时间:2024-11-27 17:59:26浏览次数:7  
标签:return 请求 SpringMVC 参数 user 接收 public String

(5)请求参数==》五种普通参数

  • 1.普通参数
    • 代码块

    @RequestMapping("/commonParam")
    @ResponseBody
    public String commonParam(String name,int age){
        System.out.println("普通参数传递 name ==> "+name);
        System.out.println("普通参数传递 age ==> "+age);
        return "{'module':'commonParam'}";
    }
    • GET请求==》中文不会乱码

    • POST==》中文会发生乱码

    • 在servlet配置类中配置过滤器,若过滤规则有多种以逗号分割

    @Override
    protected Filter[] getServletFilters() {
        CharacterEncodingFilter filter = new CharacterEncodingFilter();
        filter.setEncoding("UTF-8");
        return new Filter[]{filter};
    }
    • ※※※请求参数命名和后台参数命名必须一致,否则导致接受参数失败

    • 使用@RequestParam参数进行映射

  • 2.POJO参数==》当请求参数较多时使用pojo参数作为请求参数

    • 定义pojo类和对应的控制器

    public class User {
        private String name;
        private int age;
        setter、getter...
    }
    ​
    @RequestMapping("/pojoParam")
    @ResponseBody
    public String pojoParam(User user) {
        System.out.println("pojo参数传递 user ==> " + user);
        return "{'module':'pojoParam'}";
    }
    • 发送请求

    • 参数获取失败,这是由于pojo类未定义setter方法

    • ※※※请求参数名必须和pojo类属性名一一对应,否则接收失败

  • 3.嵌套pojo参数
    • pojo类+控制器

    public class User {
        private String name;
        private int age;
        private Address address;
        setter、getter...
    }
    public class Address {
        private String city;
        private String province;
        setter、getter...
    }
    @RequestMapping("/pojoContainPojoParam")
    @ResponseBody
    public String pojoContainPojoParam(User user) {
        System.out.println("嵌套pojo参数传递 user ==> " + user);
        return "{'module':'pojoParam'}";
    }
  • 4.数组类型参数
  • 5.集合参数
    • 控制器

    @RequestMapping("/listParam")
    @ResponseBody
    public String listParam(List<String> hobby) {
        System.out.println("集合类型参数传递 hobby ==> " + hobby);
        return "{'module':'listParam'}";
    }
    • 会发现会报错==》SpringMVC将List看做是一个POJO对象来处理,将其创建一个对象并准备把前端的数 据封装到对象中,但是List是一个接口无法创建对象,所以报错。

    • 同名请求参数可以使用@RequestParam注解映射到对应名称的集合对象中作为数据

(6)JSON数据类型请求参数

  • 1.JSON普通数组
    • 添加Jackson依赖

    <!--导入Jackson依赖-->
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.15.4</version>
    </dependency>
    • 在SpringMVCConfig配置类中使用@EnableWebMvc开启json数据自动转换,里面就包含了将JSON转换成对象的功能。

    @Configuration
    @ComponentScan({"requestParam.controller"})
    @EnableWebMvc
    public class SpringMVCConfig {...}
    • 编写控制器

    @RequestMapping("/jsonParam")
    @ResponseBody
    public String commonParam(@RequestParam User user) {
        System.out.println("json数据类型参数传递 user ==> " + user);
        return "{'module':'jsonParam'}";
    }
    • 发送请求

    • 请求参数接收失败==》由于现在不是直接传递的参数,而是通过请求的Body进行传递,故@RequestParam不能使用,应该使用@RequestBody

  • 2.JSON对象
    • 控制器

    @RequestMapping("/jsonObjectParam")
    @ResponseBody
    public String commonParam(@RequestBody User user) {
        System.out.println("json数据类型参数传递 user ==> " + user);
        return "{'module':'jsonObjectParam'}";
    }
    • 发送请求

  • 3.JSON对象数组+对象嵌套
    • 控制器

    @RequestMapping("/jsonObjectArrayAndContainJsonObjectParam")
    @ResponseBody
    public String jsonObjectArrayAndContainJsonObjectParam(@RequestBody List<User>                                                                          userList) {
        System.out.println("json对象数组数据+嵌套数组类型参数传递 userList ==> " + userList);
        return "{'module':'jsonObjectArrayAndContainJsonObjectParam'}";
    }
    • 发送请求

标签:return,请求,SpringMVC,参数,user,接收,public,String
From: https://blog.csdn.net/weixin_63655614/article/details/143955532

相关文章

  • SpringMvc给页面一个默认界面
    1、config包1.1、创建SpringMvcConfig类并实现接口WebMvcConfigurer@EnableWebMvcpublicclassSpringMvcConfigimplementsWebMvcConfigurer{//视图解析器@BeanpublicViewResolverviewResolver(){InternalResourceViewResolverviewResolver......
  • 深入理解SpringMVC(八)
    目录2.1.2、SpringMVC关键组件浅析2.1.3、自定义组件(否则加载默认组件)2.2、SpringMVC的请求处理2.2.1、请求映射路径的配置2.2.2、请求数据的接收2.2.3、请求静态资源2.2.4、注解驱动标签2.1.2、SpringMVC关键组件浅析 上面已经完成的快速入门的操作,也在不知不觉......
  • vue3+vite打包配置,并部署nginx,解决部署之后axios请求跨域
    配置base配置base避免打包部署到服务器上后可能会报404,无法正确的获取的资源。//vite.config.tsexportdefaultdefineConfig({ base:"./"})配置路径别名//vite.config.tsimport{defineConfig}from"vite";importvuefrom"@vitejs/plugin-vue";//配置组件路......
  • 深入剖析射频工程指标:从接收灵敏度到邻道泄漏,5G时代的关键技术与优化策略
    深入剖析射频工程指标:从接收灵敏度到邻道泄漏,5G时代的关键技术与优化策略在无线通信中,射频工程师需要面对多种复杂的指标和参数,来保证系统的性能、覆盖范围和信号质量。随着5G的到来,射频性能的要求比4G时代更加严格和复杂,这些参数不仅决定了通信质量,也直接影响到网络的容......
  • rabbitmq MessageConverter消息接收异常 一直unacked 解决
    rabbitmqMessageConverter消息接收异常一直unacked解决rabbitmq:host:127.0.0.1port:5672username:guestpassword:guestvirtual-host:/listener:simple:concurrency:1#Minimumnumberofconsumers.max-conc......
  • rabbitmq环境,c#程序接收q,(未完成)
    b站up主,雪忆微服务来源bilibili雪忆微服务的分享第一步:下载并安装erlang原因:RabbitMQ服务端代码是使用并发式语言Erlang编写的,安装RabbitMQ的前提是安装Erlang。下载地址:http://www.erlang.org/downloadshttps://github.com/erlang/otp/releases/tag/OTP-24.0Erlang包,......
  • Jenkin window bat批处理脚本如何请求api,获取json对象返回值数据
    需求:在jenkins的windowsbat批处理脚本中,请求一个api返回json数据,然后获取返回值的某个指定key的value直接上脚本:cdC:\workspace\jenkinxx\workspace\job-ta-webgitcheckoutmastergitpulldir::使用curl请求APIcurl-shttp://xx.xx.xx.xx:8088/testapi/getData......
  • springmvc核心点(面试题)
    一,什么是SpringMVC   SpringMVC是基于Java的实现了MVC设计模式的轻量级Web框架,通过把Model,View,Controller分离,将Web层进行职责解耦把复杂的Web应用分成逻辑清晰的几部分,简化开发,减少出错,方便开发人员之间的配合二,什么是MVCMVC主要的用途就是对组件之间进行隔离分层M:......
  • http请求的结构
    http请求报文格式:请求行,请求头,请求体请求行:包括四个部分请求方法、请求地址、空行、协议版本、http常用的几种请求方法:get、post、put、delete、option、head等等。请求头:请求报文的一些附加信息。(需要记住一些http常见请求头)请求头的最后有一行空行表示请求头的结束,这一很......
  • 接口实现任意格式图像的传参接收
    基于FastAPI的图像接收接口设计与实现概述在现代Web应用中,图像处理是一个常见的需求。无论是图像识别、图像分类还是图像编辑,都需要一个高效且灵活的接口来处理不同来源的图像数据。本文将详细介绍如何设计一个基于FastAPI的接口,使其能够接受任意类型的图像对象,并进行相应......