我进行了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
替换网址格式/*
,那么我就可以运行上面的链接了,但其他一切都崩溃了。
有人能帮助我吗?
答案 0 :(得分:0)
您已将请求映射设置为/loadActions
但是你告诉spring只负责这种模式的网址:
<url-pattern>*.html</url-pattern>
您可能希望将网址格式更改为/*
,或将该特定请求映射更改为/loadActions.html