【问题标题】:How to Load external Div that has a dynamic content using ajax and jsp/servlets?如何使用 ajax 和 jsp/servlet 加载具有动态内容的外部 Div?
【发布时间】:2010-04-25 19:50:03
【问题描述】:

我需要使用 ajax 功能将外部 div 元素(外部 jsp 文件)加载到当前页面中。该 JSP 页面包含 动态内容 - 例如基于从当前会话接收到的值的内容。

我以某种方式解决了这个问题,但我很怀疑,因为我认为我的解决方案很糟糕,或者因为我不是专家,所以可能有更好的解决方案。

我有三个文件:

  • 点击 TR 元素时触发的 Javascript 函数,它从 servlet 请求 html 数据:

    $("#inboxtable tbody tr").click(function(){
    
        var trID = $(this).attr('id');
        $.post("event?view=read",{id:trID}, function(data){
            $("#eventContent").html(data); // load external file
        },"html"); // type
    
    });
    
  • servlet“事件”加载数据并使用 include 方法生成 HTML 内容:

    String id = request.getParameter("id");
    if (id != null) {
       v.add("Test");
       v.add(id);
       session.setAttribute("readMessageVector", v);
       request.getRequestDispatcher("readMessage.jsp").include(request, response);
    }
    
  • 最后:外部 readMessage jsp 文件如下所示:

    <p>
       Text: ${readMessageVector[0]}
    </p>
    <p>
       ID:   ${readMessageVector[1]}
    </p>
    

    我的问题

  • 这个解决方案是否足以解决这个问题 - 加载具有动态内容的外部 jsp?

  • 有没有更好的解决方案?例如将所有 DIV 元素放在同一个文件中,而不是从外部文件中加载它们,并在同一个文件中使用 javascript/jquery 显示或隐藏这些元素?这样,我就只用JSON了?

【问题讨论】:

    标签: jquery ajax jsp servlets


    【解决方案1】:

    这个解决方案对我来说似乎很好。如果您将来开始进行大量不同的 AJAX 调用,最好从 jsps 返回一个轻量级响应,例如 JSON - 这将节省带宽,并且 jQuery 可用于生成庞大的 HTML 标记。

    【讨论】:

    • 感谢@Finbarr,但如果我返回 JSON ,我认为很难动态构建 HTML 元素。对吗?如何在同一个文件中显示和隐藏 DIV 元素而不是加载外部 div?
    • 动态构建 HTML 元素非常容易。通常,使用 jQuery,类似 $('
      ').insertAfter() 或 .insertBefore() 或 .appendTo() 或 .prependTo(),您可以链接方法调用以添加您的插入前 div 内的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-09
    • 1970-01-01
    • 2018-02-20
    • 2013-12-23
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多