在我的Spring项目中,我必须使用Ajax动态生成复选框。我能够从数据库生成复选框,但不保留其选中的值。
下面是对控制器的Ajax调用:
$.ajax({
type: "GET",
url: "http://localhost:8080/ssdms/getLoc",
data: {dept_id: dept_id},
dataType: 'json',
success:
function(response){
for ( var i = 0, len = response.length; i < len; ++i) {
var location = response[i];
$('#deptLocation').append("<input type=\"checkbox\" value=\"" + location.id + "\">"+location.desc + "</input><br/>");
}
}
});
下面是控制器代码:-
@RequestMapping(value = "/getLoc", method = RequestMethod.GET)
public @ResponseBody List<Location> getLocation(@RequestParam("dept_id") int did, HttpServletRequest request,
HttpServletResponse response) {
Department dept = deptService.getDeptDetailsById(did);
List<Location> locations = deptService.getAllLocations();
return locations;
}
在视图中,我正在使用以下代码:
<div class="form-group col-xs-12 col-sm-12 col-md-6">
<label for="deptLocation">Location of Dept</label>
<div class="checkbox" id="deptLocation">
</div>
</div>
已保存的位置详细信息由deptService.getDeptDetailsById(did)
返回,但是我无法将其映射到动态生成的复选框,因此未选中这些框。另外,当我保存表单时,null
被保存在部门表的“位置”列中。我无法在动态生成的复选框代码中使用th:field="*{deptLocation}"
,因此它未与实体链接。