2012-01-08 67 views
3

我试图将/ my/route/id映射到一个动作,但参数ID保持为空。有谁知道我做错了什么?为什么这个动作参数没有被拾取?

控制器映射代码:

@Controller 
@RequestMapping("/admin/alias") 
public class AliasesController { 

    @RequestMapping(value = "{id}", method = RequestMethod.GET) 
    public @ResponseBody SampleAliasMaskModel index(Integer id) { 

码发出请求

$('select[name=aliasMask]', ctx).change(function() { 
    var val = parseInt($(this).val(), 10); 
    if (val === -1) 
     return maskSelected(null); 
    if (!_.isNaN(val)) 
     $.getJSON('alias/'+val, {}, function(mask){ 
      maskSelected(mask); 
     }); 
}) 

请求本身: chrome request that fails

回答

3

如果弹簧未编译带有调试信息,你必须指定Pathvariable的名称作为注释参数。

像这样:

@Controller 
@RequestMapping("/admin/alias") 
public class AliasesController { 

@RequestMapping(value = "{id}", method = RequestMethod.GET) 
public @ResponseBody SampleAliasMaskModel index(@PathVariable("id") Integer id) { 

也许这就是原因。

相关问题