我有区域和部门的两个下拉列表,当我选择区域时,那么从数据库对应区域的部门将存储在Set中,我想将该Set值返回到ajax并在下拉列表中填充它。 我在控制器中获得了价值,但我无法在部门下拉列表中填充这些值。它始终打印错误警告消息,无法输入成功方法。
Script on JSP Page
<script type="text/javascript">
function getDept(district)
{
var district=$('#district').val();
//alert(district);
$.ajax({
type: "POST",
url: "/StateAttendancePortal/getDept.html",
data: "district="+district,
success: function(response){
// we have the response
if(response.status == "SUCCESS"){
options = '';
options += '<option> Please select ... </option>';
for(i =0 ; i < response.result.length ; i++){
options += '<option>' + response.result[i] + '</option>';
}
selectOption=options;
$('#dept').html(options);
}else{
errorInfo = "";
for(i =0 ; i < response.result.length ; i++){
errorInfo += "<br>" + (i + 1) +". " + response.result[i];
}
$('#error').html("Please correct following errors: " + errorInfo);
$('#info').hide('slow');
$('#error').show('slow');
}
},
error: function(e){
alert('Error: ' + e);
}
});
}
</script>
JSP PAGE
<table>
<tr>
<td>District:
<select name="district" id="district" onchange="getDept(this.value)">
<option selected="selected">Please select ...</option>
<c:forEach items="${list}" var="listv" >
<option>${listv}</option>
</c:forEach>
</select>
</td>
<td></td>
<td>Department:
<select id="dept" >
<option>Select Department</option>
</select>
</td>
</tr>
</table>
控制器
@RequestMapping(value="/getDept",method=RequestMethod.POST )
public @ResponseBody Set<String> getDept(@ModelAttribute(value="district") String deg_code, BindingResult result
,HttpServletRequest request)
throws ServletException, IOException {
Set<String> listOfDeptEmp = new HashSet<String>();
//JsonResponse res = new JsonResponse();
listOfDeptEmp.clear();
deg_code=request.getParameter("district");
if(!result.hasErrors())
{
listOfDeptEmp =adminService.fetchDeptDist(deg_code);
/*for(String l:listOfDeptEmp)
{
System.out.println("Control"+l);
}*/
System.out.println("Control"+listOfDeptEmp);
/*res.setStatus("SUCCESS");
res.setResult(listOfDeptEmp);*/
}
else
{
/*res.setStatus("FAIL");
res.setResult(result.getAllErrors()); */
}
return listOfDeptEmp ;
}
答案 0 :(得分:0)
你的类路径中有jackson
jar吗?否则添加它。它将返回json数据。
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
这有助于您将object
转换为json
,
ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
String json = ow.writeValueAsString(object);
点击similar post此处。