簡體   English   中英

jQuery訪問Servlet會話屬性

[英]Jquery access to servlet session attributes

使用Servlet會話屬性和JQuery顯示div時出現問題。 請多多包涵,因為如果沒有上下文,很難解釋。

我有一個“ result.jsp”頁面。 在jsp中,我有一個“生成URL”鏈接,一個空的輸入文本字段和一個“ addThis” div。 鏈接“ Generate URL”調用一個jquery ajax方法“ utilComp()”,該方法調用一個servlet,該servlet設置會話屬性“ saveLink”,返回一個值並填充空文本字段。

如果屬性會話“ saveLink”為空(因為尚未單擊生成URL),則在加載result.jsp時需要隱藏div。 我通過使用if test =“ $ {not empty saveLink}”和div被隱藏來實現。

我的問題是把它帶回來。 我希望“ addThis” div在ajax utilComp()完成后顯示,並且總是在屬性saveLink設置后才顯示。 有人知道我該如何做到嗎? 任何幫助或想法,將不勝感激。

這是僅顯示重要片段的RESULT.JSP

<script type="text/javascript">
    function utilComp()     {
        var jqXHR = $.ajax({
            type: "POST",
            url: "http://www.central.com/sharemake.do",
            async: false,
            global: false,
            done: function(response){
        return response;
         },
         fail: function(e){
            alert('Error: ' + e);
         }
    }).responseText;    

    $('#savelink_id').val(  jqXHR    );
</script>

<a href="javascript:utilComp()"> Generate Link </a> 

<input type="text" name="savelink_name" id="savelink_id" value="<c:out value="${saveLink}" />" />

<div class="addthis_toolbox addthis_default_style">
   <a class="addthis_button_gmail" addthis:url="<c:out value="${saveLink}"/>" </a>
</div>

這是utilComp()調用的servlet代碼。

String addressID = "http://www.central.com/generate"
session.setAttribute("saveLink", addressID);
String resultToReturntoAjax = addressID ;

PrintWriter out = response.getWriter();
response.setContentType("text/text;charset=utf-8");
response.setHeader("cache-control", "no-cache");
out.println(resultToReturntoAjax);

我不是jQuery專家,但我認為您可以通過調用$('addthis_toolbox_addthis_default_style').show()使div可見。 那應該獲得所有帶有addthis_toolbox_addthis_default_style類的addthis_toolbox_addthis_default_style ,並使它們可見。 (我假設您的div是該類的唯一控件;如果不正確,則需要為其指定一個ID並針對該ID而不是該類進行選擇。)

因此,您可以根據是否在運行JSP時(加載頁面時)設置了會話變量來為JSP中的div設置初始可見性,然后在Ajax函數完成時使用jQuery將div設置為可見在客戶端(如果尚不可見)。

暫無
暫無

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

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