java - 如何使用RequestParam获取参数的名称和值?

标签 java spring

我想使用 RequestMapping 获取 URL 参数的名称和值。

例如,如果我传入 URL http://localhost:8080/assignment2/trafficcameras?ip_comm_status=bad

我想将参数名称隔离为“ip_comm_status”。

参数值为“bad”。

如何访问任何参数对的名称和值?

问题是我知道如何获取值,但不知道参数的名称。

ip_comm_status和camera_status是我的有效参数名称。

到目前为止我已经:

    @ResponseBody
    @RequestMapping(value = "/trafficcameras", params = {"ip_comm_status", "camera_status"}, method = RequestMethod.GET)
    public String parseParams(@RequestParam(value = "ip_comm_status", required = false) String ip_comm_status_val,
            @RequestParam(value = "camera_status", required = false) String camera_status_val) {


    }

最佳答案

您可以使用Map<String, String>获取全部request param名称和值

如果方法参数为Map<String, String>MultiValueMap<String, String>并且未指定参数名称,则使用所有请求参数名称和值填充映射参数。

这是来自 baeldung 的示例

We can also have multiple parameters without defining their names or count by just using Map

@PostMapping("/api/foos")
@ResponseBody
public String updateFoos(@RequestParam Map<String,String> allParams) {
    return "Parameters are " + allParams.entrySet();
}

然后将反射发送的所有参数

curl -X POST -F 'name=abc' -F 'id=123' http://localhost:8080/api/foos
-----
Parameters are {[name=abc], [id=123]}

关于java - 如何使用RequestParam获取参数的名称和值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58148834/

相关文章:

java - JPA InheritanceType 的 @PrimaryKeyJoinColumn 在 COUNT 查询中无法正常工作

java - 如何在 java 中使用构造函数基初始化来初始化 WebClient?

java - 将 int[] 传递给采用 T[] 的通用方法

java - 如何动态设置Spring Boot端口?

java - Spring Web MVC Java 配置-默认 Servlet 名称

java - Spring:没有限定符的Autowire bean

java - 如何在java中以通用方式重命名文件?

java - 如果我们在 spring MVC 中互换 @service 和 @repository 注解会发生什么

java - Spring Boot OAuth2 不重定向到 facebook

java - 想要使用 hibernate 查询中的事务从表中删除文件夹中的现有文档和数据库值