Jquery访问servlet会话属性

时间:2013-08-11 20:43:04

标签: java jquery ajax jsp servlets

我在使用servlet会话属性&显示div时出现问题。 JQuery的。请忍受我,因为没有上下文很难解释。

我有一个" result.jsp"页。在jsp中我有一个"生成URL"链接,空输入文本字段和" addThis" DIV。链接"生成URL"调用jquery ajax方法" utilComp()"它调用一个设置会话属性" saveLink"的servlet,返回一个值并填充空文本字段。

如果属性会话" saveLink"为null(因为生成的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);

1 个答案:

答案 0 :(得分:1)

我不是jQuery专家,但我认为你可以通过调用$('addthis_toolbox_addthis_default_style').show()来显示div。这应该使所有控件都具有addthis_toolbox_addthis_default_style类并使它们可见。 (我假设你的div是该类的唯一控件;如果不是这样,你需要给它一个ID并对ID而不是类做一个选择器。)

因此,您可以根据JSP运行时(加载页面时)是否设置会话变量来设置JSP中div的初始可见性,然后在Ajax函数完成时使用jQuery设置客户端可见的div如果尚未显示。