У меня есть два варианта выбора, и мне бы хотелось, чтобы пользователь выбирал один из параметров, который заполняется другими данными из базы данных. Однако у меня возникают проблемы с возвратом списка объектов.SpringMVC Возвращает список объектов с помощью JSON
Контроллер
@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>
Er ROR
"NetworkError: 400 Bad Request - http://localhost:8084/crimeTrack/getCrimeTypeList.htm?[object%20Object]"
EDITED Я сделал некоторые эксперименты и нашел, если контроллер возвращает строку он работает, однако, как только его возвращение объекта я имею вопросы, изложенные.
FireBug
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
Есть ли у вас какие-либо исключения там? – n1ckolas
Пока вы не представили детали проблем (неправильное поведение, исключения и т. Д.) Я хотел бы сказать, что у меня в голове: мы столкнулись с тем, что независимо от того, какой тип приема вы предоставляете, если у вас есть расширение '* .htm' или' * .html' на URL вашего ресурса, вы не получите JSON. Попробуйте изменить свой URL на f.e. 'getCrimeTypeList.json' или без расширения вообще. – n1ckolas
Поскольку вы используете mvc, тогда все будет в порядке, что вы должны сделать, это сказать мне, что проблема с PLZ? – OQJF