【问题标题】:How to include multiple rendered JSP into response to AJAX?如何包含多个呈现的 JSP 以响应 AJAX?
【发布时间】:2015-05-18 12:01:00
【问题描述】:

我需要将 ajax 请求发送到 java 后端并以两个 html 块作为答案(来自 java 后端)进行响应。我想使用两个不同的 JSP 生成这两个 html 块。我这样做如下:

req.setAttribute(...);
...
resp.setContentType("text/html");
RequestDispatcher dispatcher = req.getRequestDispatcher("one.jsp");
dispatcher.include(req, resp);
dispatcher = req.getRequestDispatcher("two.jsp");
dispatcher.include(req, resp);

而且它有效。但是在前端,我收到了一个像一个可靠的 html 代码(渲染 one.jsp + 渲染 two.jsp)的答案。但我需要将它作为两个单独的 html 块接收,以将每个块放入它自己的 . 这样做的正确方法是什么?

Ajax 代码:

    function addNew() {
        var request = $.ajax({
            url: "myUrl",
            type: "post",
            dataType: "html",
            success: function(data) {
                $("#divNameOne").html(<one part of data>);
                $("#divNameTwo").html(<second part of data>);
            },
            error:function() {
                alert("fail");
            }
        });
    }

【问题讨论】:

  • 可以分享一下js代码块吗?看来您需要在 js 中分隔 html 块。如果你对单个 ajax 请求没问题。
  • 我已经用 ajax 代码更新了问题。所以唯一的办法就是用Java Script解析代码?
  • 你是在加载一个 html 片段并将其插入到现有的 div 中吗?两个 html 块的目的是什么?你能提供更多背景信息吗?
  • 对不起,我在编辑问题时出错了。现在我又更新了一次。我需要将每个 html 块放到它自己的 div 中——这就是目的。
  • 您的 jsps 中是否有唯一的 id 或类? ,因此您将能够从您的数据中选择特定的块。

标签: java ajax jsp


【解决方案1】:

在你的成功函数中,

var reponseHtml = $(data); // or you can use $($.parseHtml(data));
$("#divNameOne").html(responseHtml.find("#div1").html());
$("#divNameTwo").html(responseHtml.find("#div2").html());

它可能会起作用。

【讨论】:

    猜你喜欢
    • 2016-10-17
    • 2018-01-14
    • 1970-01-01
    • 2013-04-11
    • 2018-10-31
    • 1970-01-01
    • 2014-02-10
    • 2011-07-26
    • 2019-11-02
    相关资源
    最近更新 更多