spring-boot - 如何在 Spring Boot 中从客户端接收 EnumMap
问题描述
我们的系统在用户界面中有多个过滤器,并将过滤器类型和搜索文本作为映射传递给 Spring boot REST 端点。我们已经为 Enum 建模了所有可能的过滤器选项,如下所示,
public enum TypeEnum {
TYPE1, TYPE2, TYPE3;
}
下面的代码有效,
@GetMapping("/types/filter")
public void filterTypesByCriteria(@RequestParam Map<String, String> map) {
System.out.println(map);
}
但是当我们尝试使用 EnumMap 进行多个过滤器时,它不起作用。
@GetMapping("/types/filter")
public void filterTypesByCriteria(@RequestParam EnumMap<AuditFilterEnum, String> map) {
System.out.println(map);
}
请帮助我们
堆栈跟踪
argument type mismatch
Controller [com.trailapps.controller.TypeController]
Method [public void com.trailapps.controller.TypeController.filterTypesByCriteria(java.util.EnumMap<com.trailapps.controller.enums.TypeEnum, java.lang.String>)] with argument values: [0] [type=java.util.LinkedHashMap] [value={TYPE1=12, TYPE2=13}]
解决方案
推荐阅读
- javascript - mouseenter , mouseover 或任何鼠标事件在我的脚本上不起作用?
- android - Ionic 4:保持 Ionic 应用程序在后台运行、提取地理位置并防止被 Android 系统关闭的最佳方法?
- javascript - angularjs点击事件,附加内容后
- mysql - 如何在pyspark sql或Mysql中按键求和
- reflection - F# Generic Map.count 使用反射
- python - 我想从格式为 YEARWEEKNUM 的时间字段创建一个标志
- scheme - Scheme 中的语法和变量
- embedded-linux - Android - 将访问权限设置为分区
- button - Flutter:将按钮边缘与其他组件对齐
- html - 根据数值字段(列)的值,用不同的颜色阴影(每行 - 一个阴影)为 Angular 8 中的 mat-table 行着色