【问题标题】:SpringMVC RequestMapping params with combined style expressions具有组合样式表达式的 SpringMVC RequestMapping 参数
【发布时间】:2017-02-14 09:32:14
【问题描述】:

我有一个 Spring MVC 项目,我正在尝试解析 URL,例如:

http://localhost:8080/app/my-controller?param1=a&param2=256 http://localhost:8080/app/my-controller?param1=b&param2=256 http://localhost:8080/app/my-controller?param1=c&param2=256

我希望控制器接受具有 param1 和 param2 的请求,但也限制 param1 的值。

我尝试了以下方法:

@RestController
@RequestMapping("/my-controller")
public class MyController {

    @RequestMapping(params = { "param1=a", "param1=b", "param1=c", "param2" }, method = RequestMethod.GET)
    public ResponseEntity action(@RequestParam(name = "param1", required = true) String param1, @RequestParam(name = "param2", required = true) Integer param2) {
        ...
    }

}

但上面显示的网址不匹配。

如何使用“myParam=myValue”和“myParam”样式表达式序列指定 RequestMapping 参数值?

【问题讨论】:

    标签: java spring spring-mvc


    【解决方案1】:

    我认为问题在于您在参数列表中也指定了param2,这是不需要的。尝试简单地将其从参数列表中删除,保留其余代码:

    params = { "param1=a", "param1=b", "param1=c"}
    

    【讨论】:

    • 谢谢,确实是这个问题。我认为我应该将所有可能的参数添加到 params 属性,但它仅用于缩小主映射,其余部分根据需要指定 param2。
    猜你喜欢
    • 2012-10-24
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多