Spring REST-至少需要一个RequestParameter

Mub*_*bin 6 rest spring

我有以下方法RequestMappings

@RequestParam(value = "someValue1", required = false) final String someValue1
@RequestParam(value = "someValue2", required = false) final String someValue2
Run Code Online (Sandbox Code Playgroud)

这两个参数都标记为可选。目前,我检查提供了哪个属性,并基于此采取了一些措施。是否可以强制在请求中始终存在两个参数中的至少一个?

PS:我不是要创建两个不同的端点。

Tha*_*mar 0

只需将请求参数作为字符串映射发送并将其标记为强制属性即可。

        public @ResponseBody String your_method(
   @RequestParam(value = "parameterMap", 
    required = true) Map<String,String> params){

                //String someValue1 = params.get("someValue1");
                // String someValue2 = params.get("someValue2");
            } 
Run Code Online (Sandbox Code Playgroud)

在这里您必须传递一个或两个参数。

  • 这是不正确的。您仍然可以传递一个没有值的 Map。 (2认同)
  • 因此,理论上,这应该有效:`@RequestParam(required = true) @NotNull @Size(max = 1) Map&lt;SearchParamEnum, String&gt; params`,其中`SearchParamEnum`是接受的参数名称列表。 (2认同)