【发布时间】:2011-03-18 21:05:46
【问题描述】:
我想发送一个由一些 div 和表格组成的 JSP 页面作为 Spring 框架的 AJAX 响应的一部分,有没有办法发送 JSP 作为 AJAX 调用的响应
【问题讨论】:
-
我猜你所说的JSP实际上是指JSP生成的HTML。
标签: java javascript ajax spring-mvc
我想发送一个由一些 div 和表格组成的 JSP 页面作为 Spring 框架的 AJAX 响应的一部分,有没有办法发送 JSP 作为 AJAX 调用的响应
【问题讨论】:
标签: java javascript ajax spring-mvc
通过 AJAX 发送 JSP 没有任何意义,它基本上是由 JSP 生成的 HTML,通过 AJAX 发送到浏览器,正如迷失者正确指出的那样。
您不需要为此进行任何服务器端编码。您只需要在客户端编写一些 JavaScript 来异步接收 HTML。为此,我建议使用一些 JavaScript 框架,如 jQuery,否则,它会让你的生活陷入困境。
假设您要通过 AJAX 访问的页面有链接 http://domain:port/mypage.htm。首先你需要在你的基础 JSP 中包含 jQuery(前一个页面必须通过 AJAX 加载的 JSP):
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.js"></script>
那么你需要调用jQuery的AJAX函数:
$(document).ready(function(){
$.ajax({
type:"GET",
url: "http://domain:port/mypage.htm",
success: function(data) {
// Now you have your HTML in "data", do whatever you want with it here in this function
alert(data);
}
});
});
希望对你有帮助!
【讨论】:
是的,但这并没有什么神奇之处。在您的 Java AJAX 处理程序中,只需返回一个转发或重定向到您想要的 JSP 页面。然后,响应将在您的 AJAX 回调中以 responseText 的形式提供。
您可以使用 JSP 将您需要的元素生成为一种不完整的 HTML 片段,然后从您的服务器端处理程序返回它。然后在您的 JavaScript 回调中,您可以像这样将片段插入到现有的 HTML 中
element.innerHTML = resp.responseText
//element is the parent you want to insert to
//resp is the parameter supplied to your callback
【讨论】: