1
我需要使用ajax功能將外部div元素(外部jsp文件)加載到當前頁面中。該JSP頁面包含動態內容 - 例如基於從當前會話收到的值的內容。如何使用ajax和jsp/servlets加載具有動態內容的外部Div?
我以某種方式解決了這個問題,但我懷疑是因爲我認爲我的解決方案不好,或者因爲我不是專家,所以可能有更好的解決方案。
我有三個文件:
- 點擊一個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「事件「使用加載數據並生成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?
謝謝@Finbarr,但是如果我返回JSON,我認爲很難動態構建HTML元素。對吧?那麼在同一個文件中顯示和隱藏DIV元素而不是加載外部div呢? – Abdullah 2010-04-25 20:05:53
動態構建HTML元素非常簡單。通常情況下,使用jQuery,像$('
').insertAfter()或.insertBefore()或.appendTo()或.prependTo(),您可以鏈接方法調用以在div內添加內容被插入。 – Finbarr 2010-04-25 20:10:32