如何使用ajax和jsp / servlets加载具有动态内容的外部Div?

时间:2010-04-25 19:50:04

标签: jquery ajax jsp servlets

我需要使用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“event”使用 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?

1 个答案:

答案 0 :(得分:1)

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