Spring RequestMapping正则表达式发生

时间:2013-01-03 13:18:00

标签: spring-mvc

我有一个这样的网址模式:

http://xy.com/param1/value1/param2/value2/..../paramN/valueN

我想在Spring colntroller中编写一个@RequestMapping,但如果我不知道有多少参数和值,我不知道怎么办。

有没有办法让所有参数和值都被收集? 或者任何人都可以帮忙解决这个问题吗?

由于

2 个答案:

答案 0 :(得分:0)

  • 为什么不能在没有@PathVariable的情况下使用标准方式?所以网址就像

http://xy.com?param1=value1&param2=value2&....&paramN=valueN

和您的注释:

    @RequestMapping("xyz1")
    @ResponseBody
    public String index(@RequestParam(required = false) String param1, @RequestParam(required = false) String param2,
            @RequestParam(required = false) String paramN) {

        return "Param1=" + param1 + ", Param2=" + param1 + ", ParamN=" + paramN;
    }

    @RequestMapping("xyz2")
    @ResponseBody
    public String index2(HttpServletRequest servletRequest) {
        StringBuilder result = new StringBuilder();
        for (Entry<String, String[]> entry : servletRequest.getParameterMap().entrySet()) {
            result.append(entry.getKey());
            result.append('=');
            result.append(Arrays.toString(entry.getValue()));
            result.append(", ");
        }

        return result.toString();
    }

当所有预期参数都已知时使用@RequestParam,如果您确实需要动态处理它们,则使用servletRequest.getParameterMap()

  • 或者你可以采用hackish方式,使用here所描述的可选@PathVariable

答案 1 :(得分:0)

我使用的是Spring ModelAttribute而不是