2013-01-03 80 views

回答

0

我是用Spring ModelAttribute代替

0
  • 爲什麼你不能使用標準的方式,而不@PathVariable s的呢?所以,URL會像

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

在當所有預期的參數是已知的,如果你真的需要來處理它們servletRequest.getParameterMap()用於使用@RequestParam動態。

  • 或者你可以去的hackish的方式與被描述here真的可選@PathVariable秒。