我有一些代码:
$(document).ready(function(){
$(":button").click(function(){
var formData = {"field1":field1, "oper1":oper1, "value1":value1, "field2":field2, "oper2":oper2, "value2":value2, "field3":field3, "oper3":oper3, "value3":value3};
$.post("<%=request.getRequestURL().toString()%>getInfo.jsp", formData, function(response){alertHere(response)});
})
})
function alertHere(response){
alert("Post successful");
alert(response);
renderResults();
}
发布表单数据和数据查询,并使用
设置会话属性 session.setAttribute("directoryString", xml);
单击按钮时。在响应函数中,调用renderResults,它抓取返回的xml:
function renderResults(){
alert("inside renderResults()");
element = document.getElementById("person");
xmlString = '<%=session.getAttribute("directoryString")%>';
console.log('XML String: ' + xmlString);
编写函数的其余部分以解析xml并将其显示在页面上。
我的问题是,当我第一次访问页面并发布数据时,xmlString变量为null。当我刷新页面并返回到我的Web控制台中的“页面源”时,变量设置正确。我不确定发生了什么。我的函数是否有可能在设置之前调用session属性?
P.S。我知道scriplets不是最好的方法,但这就是我们在这里做的方式。
答案 0 :(得分:0)
<%=session.getAttribute("directoryString")%>
。渲染的HTML在浏览器中后,只能通过以下方式更改:
进行ajax调用以获取属性的更新值并更新变量(例如,您可以设置document.myXmlString = ''
并在renderResults
中使用该值。