SpringBoot用实体接收Get请求传递过来的多个参数(绝对可用)
原文地址:https://blog.csdn.net/qq_19734597/article/details/88897710
最近项目中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同时接收多个实体入参,所以失败了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2018-05-02 电脑开机后多了OneKey Ghost启动选项怎么解决