我需要使用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?
答案 0 :(得分:1)
这个解决方案对我来说似乎很好。如果你将来开始做很多不同的AJAX调用,你最好从jsps返回一个轻量级响应,比如JSON - 这样可以节省带宽,jQuery可以用来生成庞大的HTML标记。