弹出窗口中的Servlet响应

时间:2012-06-14 14:38:17

标签: javascript html jsp popup

我有一个JSP页面,它使用JS打开一个弹出窗口。 弹出窗口打开以下JSP页面。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link href="/ArchiveSearch/resources/css/messageDetail.css" rel="stylesheet" type="text/css">

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Message detail</title>
</head>
<body>
    <div class="wrapper">
            <h1>Message Details</h1>
            <div class="messageMeta1">
                    <div><span class="label">Sender:</span> <c:out value="${messageid}" /></div>
                    <div><span class="label">Receiver:</span></div>
                    <div><span class="label">Subject:</span></div>
                    <div><span class="label">Attachments:</span></div>
            </div>
            <div class="messageMeta2">
                    <div><span class="label">Case ID:</span></div>
                    <div><span class="label">Date:</span>${messagedate}</div>
            </div>
            <div class="messageContent">
            </div>
    </div>
</body>
</html>

我的问题是,当JS打开网页时,从servlet传递的值不会显示在JSP页面上。但是,当我在Firebug下检查HTML响应时,HTML会正确呈现。我的问题是如何正确地在弹出窗口中获取Servlet?

JS:

$('#searchResults tbody tr').live('dblclick', function () {
    var aData = table.fnGetData( this,0 );
    $.ajax({
        url: "MessageDetail",
        type: "POST",
        data: "messageid=" + aData,
        succes: function(data) {
        }
    });
    window.open(myjsppage.jsp, "_blank", "width=600,height=600");
});

弹出窗口知道之前发出的请求,我该如何解决?

修改 我试过这样的事情:

        succes: function(data) {
            gData = data;
        }
    });
    var popup = window.open("messageDetail.jsp", "_blank", "width=600,height=600");
    popup.document.write(gData);
});

我认为我是在正确的道路上,但我还没有完全在那里。现在在弹出窗口中打印未定义,这意味着该变量未被填充。

1 个答案:

答案 0 :(得分:0)

这不是一个很好的方法,但是如果你想让你的代码工作,你必须像这样使用它:

success: function(data) {
            gData = data;
            var popup = window.open("messageDetail.jsp", "_blank", "width=600,height=600");
            popup.document.write(gData);
        }
    });

});

将您的开放代码放入成功方法中。

你还写了成功,请修复它。