Я хочу, чтобы получить json
объект из success
в качестве ajax
этого является то, что я сделал до сих пор
Ajax с использованием Gson
Мой выпадающий список
<select id="testers_team" class="tester_team">
<optgroup label="Current Value">
<option><c:out value="${info.team}"></c:out></option>
</optgroup>
<optgroup label="Teams">
<c:forEach var="team" items="${requestScope.testers}">
<option value="${team.key}">${team.key}</option>
</c:forEach>
</optgroup>
</select>
Это один мой Ajax
, то select
, приведенный выше, повторяется в цикле, поэтому я должен использовать каждый, чтобы узнать, с какими из них я работаю (только для того, чтобы сообщить вам, ребята)
$('.tester_team').each(function(){
$(this).change(function() {
$.ajax({
url: 'Analysis',
type: 'POST',
dataType: 'json',
data: {team: $(this).val()},
success: function(data){
alert(data); // alert not working
}
});
});
});
Я использую Gson
на мой сервлет код Херес:
String team = request.getParameter("team");
HashMap<String, ArrayList<String>> testerList
= new UsersDAO().getTestersOfAllTeams();
ArrayList<String> testers = testerList.get(team);
if(testers != null)
{
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
try
{
response.getWriter().write(new Gson().toJson(testers));
//this one is printing so that means it actually succeed to parse?
System.out.println(team);
}
catch(IOException e)
{
// just want to test out if it really failed
System.out.println("failed");
log.debug("Unable to get parse request", e);
}
}
Проблема заключается в сценарии с Ajax
не запускает функцию alert(data);
, когда я изменить выпадающий список, что это проблема с моим код? или я неправильно использую коды?
Вы печатаете значения консоли, вы должны напечатайте ответ json с PrinterWriter внутри Servlet. Можете ли вы опубликовать весь код сервлета для проверки вызова сервлета? Если не печатается, возможно, у него есть ошибки – Jessai
Когда я запускаю коды, нет трассировки стека, и я уже размещаю весь почтовый код сервлета, связанный с проблемой. Не беспокойтесь о HashMap, это не пусто. «Println» уже подтвердил это мне. О PrintWriter Я не планирую писать код «html» из сервлета, если я правильно вас понимаю. – newbie