【问题标题】:How to send JSP as response to AJAX call如何发送 JSP 作为对 AJAX 调用的响应
【发布时间】:2011-03-18 21:05:46
【问题描述】:

我想发送一个由一些 div 和表格组成的 JSP 页面作为 Spring 框架的 AJAX 响应的一部分,有没有办法发送 JSP 作为 AJAX 调用的响应

【问题讨论】:

  • 我猜你所说的JSP实际上是指JSP生成的HTML。

标签: java javascript ajax spring-mvc


【解决方案1】:

通过 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);
        }
    });
});

希望对你有帮助!

【讨论】:

  • 如果您尝试用 AJAX 替换部分代码,也可以考虑使用 $.load() 代替,与 JSP 结合使用非常好,您甚至可以填充您的模型并在AJAX JSP。实际上,我的 JSP 文件夹中有一个名为 AJAX 的文件夹,以表明这些 JSP 不应由它们自己呈现,而应作为其他页面的一部分
【解决方案2】:

是的,但这并没有什么神奇之处。在您的 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-15
    • 2013-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多