我的Spring MVC Web应用程序存在问题。我有两个下拉列表:categoryName和subCategoryName。 使用数据库值填充categoryName下拉列表。代码如下所示,它可以正常工作。
控制器方法:
@RequestMapping(value = "/add", method = RequestMethod.GET)
public String showAddItem(Model model) {
List<Map<String, Object>> listCat = categoryRepository.viewCategoryList();
model.addAttribute("listCat",listCat);
return "addItem";
}
JSP代码:
<form:select class="form-control" id="selectCat" path="categoryName">
<form:option value="-" label="--Select Category--"/>
<c:forEach var="list" items="${listCat}">
<form:option id="${list.key}" value="${list.get(\"name\")}">${list.get("name")}</form:option>
</c:forEach>
</form:select>
下拉子类别名称必须根据从categoryName下拉列表中选择的值进行填充。为此我想在选择更改事件上进行ajax调用,如下所示。
$("#selectCat").change(function(){
var categoryNm = $(this).val();
$.ajax({
type: "POST",
url: "https://localhost:8443/admin/items/getSubcats",
data: {"categoryNm " : categoryNm },
success: function(data){
var slctSubcat = $("#selectSubCat"), option= "";
slctSubcat.empty();
for(var sb =0; sb<data.length; sb++){
option = option + "<option value='" + data[sb].name + "'>" +data[sb].name + "</option>";
}
slctSubcat.append(option);
},
error:function(){
alert("error");
}
});
});
此ajax调用将解决以下控制器方法,该方法包含用于从数据库中选择相关子类别列表的查询。
//controller method to get relevant subcategory
@RequestMapping(value="/getSubcats",method=RequestMethod.POST)
public @ResponseBody List<Map<String, Object>> getSubcatList(@ModelAttribute("categoryNm") Category categoryNm){
return categoryRepository.retrieveSubcatogories(categoryNm.getCategoryName());
}
我想要填充子类别列表的JSP代码如下所示
但我没有填充subCategory Dropdown。有人可以告诉我这个吗
<form:select class="form-control" id="selectSubCat" path="subCategoryName">
<form:option value="-" label="--Select sub-category--"/>
</form:select>
答案 0 :(得分:0)
@RequestMapping(value="/getSubcats",method=RequestMethod.POST)
public @ResponseBody List<Map<String, Object>> getSubcatList(@RequestParam("categoryNm") String categoryNm){
return categoryRepository.retrieveSubcatogories(categoryNm.getCategoryName());
}