2012-01-08 68 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) { 

也許這就是原因。

相關問題