私には 2 つの選択オプションがあり、ユーザーが 1 つのオプションを選択したときに、データベースからのデータが他のオプションに入力されるようにしたいと考えています。ただし、オブジェクト リストをビューに返す際に問題が発生しています。
コントローラ
@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