0

我有一个这样的 url 模式:

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

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

有什么方法可以收集所有参数和值吗?或者有人可以帮我解决这个问题吗?

谢谢

4

2 回答 2

0
  • 为什么你根本不能使用没有@PathVariables 的标准方式?所以网址会像

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();
    }

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

  • 或者,您可以使用此处@PathVariable描述的真正可选的 s采用 hackish 方式。
于 2013-01-03T16:25:34.560 回答
0

我使用的是 Spring ModelAttribute 而不是

于 2013-04-26T14:34:13.373 回答