簡體   English   中英

在刷新頁面之前未設置會話屬性

[英]session attribute not being set until I refresh thepage

我有一些代碼:

$(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屬性?

附言:我知道,小蜘蛛並不是做到這一點的最佳方法,但這就是我們在此處所做的方法。

<%=session.getAttribute("directoryString")%>僅在將JSP呈現到HTML頁面中時進行評估。 呈現的HTML在瀏覽器中后,只能通過以下方式之一進行更改:

  • 重新加載頁面
  • JavaScript。

進行ajax調用以獲取屬性的更新值並更新變量(例如,您可以設置document.myXmlString = ''並在renderResults使用該值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM