Spring MVC - @ModelAttribute 注解代替 @RequestParam,通过实体类获取 Get 请求的参数

news/发布时间2024/5/18 15:26:37

如果遇到 Get 请求参数过多的情况,使用 @RequestParam 不合适了,太多了也不好搞,而且如果遇到了增加或修改的情况,Service 层方法也要改变。

优化 Get 请求参数过多的方法有两种:

  1. Service 接收 Map 对象,在 Controller 层把这些 URL 参数封装到 Map 中传递给 Service。
  2. 通过 @ModelAttribute 自动把 URL 参数封装到实体类中,传递给 Service。

更合适的是第二种,第一种 Map 由于在获取时数据类型不确定需要强转,不安全,并且 key 出错就会报错,而且你也不知道获取的 key 是什么意思,好歹实体类可以有字段注释。

file:[controller/FlowchartController.java]
@GetMapping("/find/all/collect")
public R<List<CollectFlowchart>> findAllCollect(@ModelAttribute FlowchartCondition condition) {List<CollectFlowchart> list = collect.findAll(condition);if (list != null) return R.success(list);return R.failed("没有收藏流程图!", null);
}
file:[entity/vo/FlowchartCondition.java]
@Data
@NoArgsConstructor
@AllArgsConstructor
public class FlowchartCondition {private String uid;private String fileName;private Integer isPublic;private Integer isLegal;private Integer isShare;private List<Collate> collates;@Data@NoArgsConstructor@AllArgsConstructorpublic static class Collate {/*** 是否升序*/private Boolean isAsc;/*** 字段名称*/private String col;}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/77645758.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

Density-invariant Features for Distant Point Cloud Registration论文阅读

Density-invariant Features for Distant Point Cloud Registration论文阅读2023 ICCVDensity-invariant Features for Distant Point Cloud Registration 2023 ICCV*Quan Liu, Hongzi Zhu, Yunsong Zhou, Hongyang Li, Shan Chang, Minyi Guo*; Proceedings of the IEEE/CVF I…

《机器人SLAM导航核心技术与实战》第1季:第6章_机器人底盘

《机器人SLAM导航核心技术与实战》第1季:第6章_机器人底盘视频讲解【第1季】6.第6章_机器人底盘-视频讲解【第1季】6.1.第6章_机器人底盘_底盘运动学模型-视频讲解【第1季】6.2.第6章_机器人底盘_底盘性能指标-视频讲解【第1季】6.3.第6章_机器人底盘_典型机器人底盘搭建-视频…

Spring Boot Starter Parent

在这,您将学习了解 Spring Boot Starter Parent, 它是 Spring Boot 提供的父级 Pom 文件,旨在提供自动版本依赖管理,帮助我们轻松快速地进行 Spring Boot 开发。 什么是 Spring Boot Starter Parent ? 通过 Spring Boot Starter Parent, 我们可以进行简单便捷地包依赖管理。…

【ASP.NET Core】在 Mini-API 中注入服务

经过版本更新,Mini API 的功能逐步完善,早期支持得不太好的 mini API 现在许多特性都可以用了,比如灰常重要的依赖注入。 咱们先来个相当简单的注入测试。来,定义一个服务类,为了偷懒,老周这里就不使用 接口 + 实现类 的方式了。public class MyService : IDisposable {p…

【基础算法】排序算法

一、排序算法简介 排序是对批量数据按照一定的顺序进行排列的操作。 1.1 学习排序算法的要点 算法原理、代码实现、评价算法优劣。 1.2 评价排序算法的优劣 排序算法的优劣可以从以下 3 个方面进行评价:时间性能:最好、最坏、平均时间复杂度;内存占用:是否原地排序,原地排…

简单介绍一下 Mysql 存储引擎

1 入门 本文去浅浅的探讨一下 mysql 数据库的存储引擎。 数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。 现在…