为什么这个动作参数没有被拿起?

时间:2012-01-08 21:23:17

标签: java spring-mvc routing

我正在尝试将/ my / route / id映射到一个动作,但参数id保持为null。有谁知道我做错了什么?

控制器映射代码:

@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

1 个答案:

答案 0 :(得分:3)

如果未使用调试信息编译spring,则必须将Pathvariable的名称指定为注释参数。

像这样:

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

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

也许这就是原因。