Ajax调用SPRING MVC - url未找到错误

时间:2015-03-24 13:31:54

标签: jquery ajax spring spring-mvc

我进行了ajax调用,在用户选项上动态填充选择标记。

function updateSelect(){
    var ddlTool = $('#selectTool');
    var ddlAction = $('#selectAction');
        ddlTool.on('change',function(){ 
            //append the placeholder
            ddlAction.html('<option value="NONE">Select action</option>')
            var option = ddlTool.val();
            $.ajax({            
                url: "/eMuse/loadActions",
                    data : {id:option}, 
                success : function (response){
                    debugger;
                    for(var i = 0; i < response.length; i++){
                        ddlAction.append('option value="' + response[i].value + '">'+
                                response[i].text + '</option>');
                    }
                }
            });
    });
}

在Controller中我有这个方法:

    @RequestMapping(value = "/loadActions", method = RequestMethod.GET, produces ="application/json")
    public @ResponseBody List<DropDownListItem> loadActionsGET(@RequestParam("id") long id) {

        // load actions by selected tool
        List<ActionViewModel> actions = StudentModelMapper
                .mapListActionDTOToListActionVM(actionService
                        .getActionsByIdTool(id));
        List<DropDownListItem> items = new ArrayList<DropDownListItem>();
        for (ActionViewModel a : actions) {
            items.add(new DropDownListItem(String.valueOf(a.getIdAction()), a
                    .getName()));
        }

        return items;

    }

如果我跑:

  

http://localhost:8080/eMuse/loadActions?id=1   我也得到了NOT FOUND错误

在我的web.xml文件中,我已经像这样映射了servlet:

<servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>

如果我用*.html替换网址格式/*,那么我就可以运行上面的链接了,但其他一切都崩溃了。

有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

您已将请求映射设置为/loadActions

但是你告诉spring只负责这种模式的网址:

<url-pattern>*.html</url-pattern>

您可能希望将网址格式更改为/*,或将该特定请求映射更改为/loadActions.html