SpringBoot用实体接收Get请求传递过来的多个参数的两种方式

目录
  • 一、Controller层不带任何注解接收参数
  • 二、Controller层通过@ModelAttribute接收参数

最近项目中Controller层查询接口需要通过实体来接受前端传过来的多个参数(Get请求),这个问题困扰了我很久,之前在第二家公司的时候,就因为我后端是Get请求,并且是通过实体去接收前端参数的,导致我当天上线搞到半夜没搞好,这次又遇到,势必解决它。

一年前,通过查看大量的坑爹文章,发现网上没有一篇有效的,这次通过阿里主管的协助,成功的通过实体接收到了Get请求传递过来的参数,而且是发现了两种方法。

一、Controller层不带任何注解接收参数

第一种方法是最简单的,严重怀疑以前怎么没有用,谁知道呢。。不过这次是真的管用了,最简单的方式就是Controller接口入参不加任何注解!!!SpringBoot自动做了处理。代码如下:

/**
 * @author zhangzhixiang
 * @since v1.0.0
 */
@RestController
@RequestMapping(path = "/ui/institution")
public class InstitutionManagementController {

    @GetMapping(value = "/pageQueryForAssign")
    public void pageQueryInstitutionsForAssign(InstitutionQueryDTO queryDTO) {

    }
}

其实重点就是InstitutionQueryDTO旁边没有任何注解,这样前端正常传Get参数就好,前端传参格式示例如下:

http://192.168.63.125/ui/institution/pageQueryForAssign?name='xxx'&sex='男'

这里的name和sex是InstitutionQueryDTO实体中的属性,SpringBoot会帮我们自动填充到实体中。

二、Controller层通过@ModelAttribute接收参数

这个写法是在网上阅读文章找到的,这种方法我也记录一下。

/**
 * @author zhangzhixiang
 * @since v1.0.0
 */
@RestController
@RequestMapping(path = "/ui/institution")
public class InstitutionManagementController {

    @GetMapping(value = "/test")
    public void test(@ModelAttribute InstitutionQueryDTO queryDTO){

    }
}

这里的重点是@ModelAttribute注解,他也会将前端传过来的参数填充到业务实体中,前端传参格式与方法一相同。

我一年前应该也有通过第一种方式来接受Get请求的参数,但是失败了没有接收到,我失败的原因应该是我的Controller同时接收多个实体入参,所以失败了。

到此这篇关于SpringBoot用实体接收Get请求传递过来的多个参数的两种方式的文章就介绍到这了,更多相关SpringBoot实体接收Get请求内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • SpringBoot RestTemplate GET POST请求的实例讲解

    一)RestTemplate简介 RestTemplate是HTTP客户端库提供了一个更高水平的API.主要用于Rest服务调用. RestTemplate方法: 方法组 描述 getForObject 通过GET检索表示形式. getForEntity ResponseEntity通过使用GET 检索(即状态,标头和正文). headForHeaders 通过使用HEAD检索资源的所有标头. postForLocation 通过使用POST创建新资源,并Location从响应中返回标头. po

  • SpringBoot构建Restful service完成Get和Post请求

    一个基本的RESTfule service最进场向外提供的请求Method就是Get和Post. 在Get中,常用的都会在请求上带上参数,或者是路径参数.响应Json. 在Post中,常用的会提交form data或者json data作为参数,响应Json. 1. Get请求,url传参,返回json. 先准备一个请求后,响应的对象. package com.example.demo; public class Echo { private final long id; private fin

  • spring boot RestTemplate 发送get请求的踩坑及解决

    spring boot RestTemplate 发送get请求踩坑 闲话少说,代码说话 RestTemplate 实例 手动实例化,这个我基本不用 RestTemplate restTemplate = new RestTemplate(); 依赖注入,通常情况下我使用 java.net 包下的类构建的 SimpleClientHttpRequestFactory @Configuration public class RestConfiguration { @Bean @Conditiona

  • 解决Springboot get请求是参数过长的情况

    问题原因 Springboot get请求是参数过长抛出异常:Request header is too large 的问题 错误描述 java.lang.IllegalArgumentException: Request header is too large 解决方案 请求头超过了tomcat的限值.本来post请求是没有参数大小限制,但是服务器有自己的默认大小. 设置服务器大小: 1.普通tomcat 在server.xml中 <Connector connectionTimeout=&quo

  • SpringBoot常见get/post请求参数处理、参数注解校验及参数自定义注解校验详解

    目录 springboot常见httpget,post请求参数处理 PathVaribale获取url路径的数据 RequestParam获取请求参数的值 注意 GET参数校验 POSTJSON参数校验 自定义注解校验 总结 spring boot 常见http get ,post请求参数处理 在定义一个Rest接口时通常会利用GET.POST.PUT.DELETE来实现数据的增删改查:这几种方式有的需要传递参数,后台开发人员必须对接收到的参数进行参数验证来确保程序的健壮性 GET一般用于查询数

  • SpringBoot用实体接收Get请求传递过来的多个参数的两种方式

    目录 一.Controller层不带任何注解接收参数 二.Controller层通过@ModelAttribute接收参数 最近项目中Controller层查询接口需要通过实体来接受前端传过来的多个参数(Get请求),这个问题困扰了我很久,之前在第二家公司的时候,就因为我后端是Get请求,并且是通过实体去接收前端参数的,导致我当天上线搞到半夜没搞好,这次又遇到,势必解决它. 一年前,通过查看大量的坑爹文章,发现网上没有一篇有效的,这次通过阿里主管的协助,成功的通过实体接收到了Get请求传递过来的

  • 详解Springboot之接收json字符串的两种方式

    第一种方式.通过关键字段@RequestBody,标明这个对象接收json字符串.还有第二种方式,直接通过request来获取流.在spring中,推荐使用. 代码地址 https://gitee.com/yellowcong/springboot-demo/tree/master/springboot-json 项目结构 其实项目里面没啥类容,就是一个控制器和pom.xml配置 配置fastjson 添加fastjson的依赖到pom.xml中 <dependency> <groupI

  • 详解springmvc 接收json对象的两种方式

    最近学习了springmvc 接收json对象的两种方式,现在整理出来,具体如下: 1.以实体类方式接收 前端 ajax 提交数据: function fAddObj() { var obj = {}; obj['objname'] = "obj"; obj['pid'] = 1 ; $.ajax({ url: 'admin/Obj/addObj.do', method: 'post', contentType: 'application/json', // 这句不加出现415错误:U

  • 阿里nacos+springboot+dubbo2.7.3统一处理异常的两种方式

    目录 1.为什么要抛异常? 2.给出解决方案 3.两种抛异常的实例解说 dubbo工程搭建 在网上很多关于dubbo异常统一处理的博文,90%都是抄来抄去.大多都是先上一段dubbo中对于异常的统一处理的原码,然后说一堆的(甚至有12345,五种)不靠谱方案,最后再说“本篇使用的是方案4”,然后再对所谓的方案4写了一段文字,最后还说不清!!! 本篇解决方案不会那么罗里吧嗦也不会贴dubbo源码来凑字数,我就直接从刚结束不久的双11保卫战性能全链路优化中我们的面对10万级别TPS的方案中提取的代码

  • 通过Ajax两种方式讲解Struts2接收数组表单的方法

    使用struts2表单传值,可以传一个或者是作为一个对象的各个属性传,都非常灵活便捷.但是如果我们需要传一个数组并希望struts正确接收,该怎么处理呢? 下面我将通过普通表单和ajax两种方式讲解.首先我们有如下一个实体,一个action和一个jsp. Student.java public class Student { private String name; private String num; } StudentAction.java public class StudentActi

  • vue-router传递参数的几种方式实例详解

    vue-router传递参数分为两大类 编程式的导航 router.push 声明式的导航 <router-link> 编程式的导航 router.push 编程式导航传递参数有两种类型:字符串.对象. 字符串 字符串的方式是直接将路由地址以字符串的方式来跳转,这种方式很简单但是不能传递参数: this.$router.push("home"); 对象 想要传递参数主要就是以对象的方式来写,分为两种方式:命名路由.查询参数,下面分别说明两种方式的用法和注意事项. 命名路由

  • 使用easyui从servlet传递json数据到前端页面的两种方法

    两种方法获取的数据在servlet层传递的方法相同,下面为Servlet中代码,以查询表中所有信息为例. //重写doGet方法 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub ​ request.setCharacterEncoding("

  • 详解在springboot中使用Mybatis Generator的两种方式

    介绍 Mybatis Generator(MBG)是Mybatis的一个代码生成工具.MBG解决了对数据库操作有最大影响的一些CRUD操作,很大程度上提升开发效率.如果需要联合查询仍然需要手写sql.相信很多人都听说过微服务,各个微服务之间是松耦合的.每个微服务仅关注于完成一件任务并很好地完成该任务.在一个微服务的开发过程中很可能只关注对单表的操作.所以MBG在开发过程中可以快速的生成代码提升开发效率. 本文将说到在springboot的项目中如何去配置(XML形式和Java配置类形式)和使用M

  • Springboot整合MongoDB进行CRUD操作的两种方式(实例代码详解)

    1 简介 Springboot是最简单的使用Spring的方式,而MongoDB是最流行的NoSQL数据库.两者在分布式.微服务架构中使用率极高,本文将用实例介绍如何在Springboot中整合MongoDB的两种方法:MongoRepository和MongoTemplate. 代码结构如下: 2 项目准备 2.1 启动MongoDB实例 为了方便,使用Docker来启动MongoDB,详细指导文档请参考:基于Docker的MongoDB实现授权访问的方法,这里不再赘述. 2.2 引入相关依赖

  • springboot+mybatis-plus 两种方式打印sql语句的方法

    1.注解方式,yml文件配置上以下就可以直接使用 mybatis-plus: mapper-locations: classpath:mapper/*.xml configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 2.这一种网上没有,搜过好多资料都没有,我是配置多数据源,所以是在代码中写的config那么yml文件就是失效的,只能一个一个配置,到了打印sql的时候,就怎么都是找不到,后来设置的源码找到灵感,发现可

随机推荐