首页 > 解决方案 > 如何在 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}]

标签: spring-bootspring-mvc

解决方案


推荐阅读