java - 查询过滤参数
问题描述
在我的 REST 应用程序中,我有 GET 方法来处理带有分页参数(偏移量和限制)的请求。它还处理过滤器和排序参数,例如我可以设置过滤器像'id eq 5'和排序像'name desc'。但是过滤器的参数它只是查询字符串参数和创建带有 2 个过滤器的请求,例如“id eq 5, size gt 10”。我可以将带有 2 个过滤器参数的请求作为 2 个独立的查询参数来处理吗?是的,我可以@RequestParam
在我的方法中为 2 个独立的参数添加 2。但是如果有可能通过 10-15 个参数过滤请求呢?这是否意味着我应该在方法中设置 10-15 个参数@RequestParam(required = false)
或者有更方便的方法来处理它?
总之,我想得到类似的东西,host/filterkey1[operator]=value1&filterkey2[operator]=value2
现在我得到了这个:host/filter=filterkey1[operator]value1,%filterkey2[operator]value2
解决方案
您可以使用以下命令注释地图@RequestParam
:
@RequestParam Map<String, String> filters
根据文档:
如果方法参数是 Map 或 MultiValueMap 并且未指定参数名称,则使用所有请求参数名称和值填充 map 参数。
推荐阅读
- mongodb - 猫鼬:如何从日期集合中的小时、分钟和秒字段中计算秒数
- flowtype - Flow 类型声明中的省略号有什么作用?
- php - 将复选框标签链接到另一个并在发布时区分
- java - 当我尝试从面板中删除形状时,Java repaint() 方法不起作用
- javascript - Javascript str.split(/[^a-zA-Z0-9.@]|(username|fname)/ 不从字符串中删除 'username' 或 'fname'
- pandas - KeyError:“[索引(['',''],dtype ='object')]都没有在[columns]中”尝试选择dask数据帧上的列
- google-chrome-devtools - 单击链接弹出新的下载选项卡并立即关闭时,如何在 chrom devtools 中捕获网络信息?
- python - 用标签转置日期时间
- javascript - 从 .txt 文件读取并显示数据的 React 组件
- reactjs - 尝试导入错误:“更新”未从“@createjs/tweenjs”导出(导入为“TWEEN”)