【发布时间】:2017-11-01 22:34:25
【问题描述】:
我有一个调用 GetTierNamesServlet 的 ajax 请求:
$('#application').change(function() {
$.ajax({
url : 'GetTierNamesServlet',
data : {
name : $('#application').find(":selected").text()
},
type : 'get',
cache : false,
success : function(data) {
},
error : function() {
alert('error');
}
}).done(function() {
var test = '<c:out value="${tiers}" />';
alert(test)
})
});
GetTierNamesServlet 将“层”保存到会话属性中,如下所示并转发回同一页面 (index.html)。
HttpSession session = request.getSession(false);
session.setAttribute("tiers", tiers);
getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);
当调用 alert(test) 时,它会从上次处理 ajax 请求时提醒选定的层。 会话属性“tiers”似乎总是“滞后”一次刷新。
我在这里做错了什么?我希望通过将警报放置在 ajax 请求的 .done 部分中,它会在执行某些操作之前等待异步调用返回。
【问题讨论】:
标签: ajax jsp session servlets setattribute