我有两个选择选项,当用户选择一个选项时,我希望另一个选项填充数据库中的数据。但是,我在将对象列表返回到视图时遇到问题。
控制器
@RequestMapping(value="getCrimeTypeList.htm", method = RequestMethod.GET)
public @ResponseBody List<CrimeType> getCrimeTypeList(@RequestParam(value="crimeCatId") Integer crimeCatId) throws Exception{
try {
List<CrimeType> crimeTypeList = this.crimeTypeManager.getCrimeTypeList(crimeCatId);
return crimeTypeList;
} catch (Exception e) {
logger.error(e.getMessage());
return null;
}
}
jQuery
$("select#offenceCatId").change(function(){
$.ajax({
type:'GET',
url:'getCrimeTypeList.htm',
data:{crimeCatId: $(this).val()},
headers: {
Accept: 'application/json'
},
dataType: 'json',
success:function(data){
alert('it worked');
}
});
});
HTML
<li>
<label>Offence Type</label>
<form:select path="offenceTypeId" id="offenceTypeId" title="Offence Type">
<form:options items="${crimeType.crimeTypeList}" itemValue="crimeTypeId" itemLabel="crimeTypeDesc"/>
</form:select>
<form:errors path="offenceTypeId" class="errors" />
</li>
错误
"NetworkError: 400 Bad Request - http://localhost:8084/crimeTrack/getCrimeTypeList.htm?[object%20Object]"
编辑 我做了一些实验,发现如果控制器返回一个字符串,它就可以工作,但是一旦它返回一个对象,我就会遇到问题。
萤火虫
GET http://localhost:8084/crimeTrack/getCrimeTypeList.htm?crimeCatId=6 406 Not Acceptable
Response Headers
Content-Length 1067
Content-Type text/html;charset=utf-8
Date Fri, 29 Mar 2013 00:58:17 GMT
Server Apache-Coyote/1.1
Request Headers
Accept application/json
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Host localhost:8084
Referer http://localhost:8084/crimeTrack/crime_registration.htm
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0
X-Requested-With XMLHttpRequest