带有地图的 RequestParam 不必要地绑定 GET 请求中的其他请求参数
RequestParam with map is unnecessarily binding other request params in GET request
我有一个这样的 GET 请求:-
@GetMapping(value = "/foo")
public Model getSomething(
@RequestParam(value = "a", required = true) String a,
@RequestParam(value = "b") String b,
@RequestParam(value = "c") int c,
@RequestParam Map<String, String> map) {
}
问题是当我发出 get 请求时,a、b、c 被包含在地图中。
我使用了这样的映射:-
/foo?a=A&b=B&c=100&key1=value1&key2=value2
目前正在发生的事情是地图具有所有请求参数值。例如
a-"a"
b-"b"
c-100
key1-value1
key2-value2
要求是只有 key1 和 key2 作为键的映射。
我只想使用 map 提取 key1 和 key2。
如何实现。
如评论中所述,您不能排除 @RequestParam
映射的参数。
您的客户是否可以选择将正文作为 json 对象而不是请求参数发送这些参数?请求正文通常不会在 GET 请求中发送,但您可以这样做。然后你会改变 @RequestParam<String, String> map)
到 @RequestBody Map<String, String> map)
我有一个这样的 GET 请求:-
@GetMapping(value = "/foo")
public Model getSomething(
@RequestParam(value = "a", required = true) String a,
@RequestParam(value = "b") String b,
@RequestParam(value = "c") int c,
@RequestParam Map<String, String> map) {
}
问题是当我发出 get 请求时,a、b、c 被包含在地图中。 我使用了这样的映射:-
/foo?a=A&b=B&c=100&key1=value1&key2=value2
目前正在发生的事情是地图具有所有请求参数值。例如
a-"a"
b-"b"
c-100
key1-value1
key2-value2
要求是只有 key1 和 key2 作为键的映射。 我只想使用 map 提取 key1 和 key2。 如何实现。
如评论中所述,您不能排除 @RequestParam
映射的参数。
您的客户是否可以选择将正文作为 json 对象而不是请求参数发送这些参数?请求正文通常不会在 GET 请求中发送,但您可以这样做。然后你会改变 @RequestParam<String, String> map)
到 @RequestBody Map<String, String> map)