我想使用 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/