我基本上是在servlet中设置属性,并试图将其放入JSP中,但它一直返回null。知道为什么?
servlet:
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
combobox=request.getParameter("selectedid");
Test t=new Test();
String content=t.giveSelected(combobox);
request.setAttribute("contentData", content);
response.sendRedirect("/WebTest-iFrame/iFrame.jsp");
}
JSP:
<%
String content=(String)request.getAttribute("contentData");
%>
<script>
function iFramefunc(){
var s = document.getElementById('iframe');
s.contentDocument.documentElement.innerHTML="<%=content%>";
s.contentDocument.close();
}
</script>
<iframe id="iframe" onload="iFramefunc()"></iframe>
而不是使用 response.sendredirect("/webtest-iframe/iframe.jsp"(; ,尝试使用 requestdispatcher ,因为 sendredirect 将创建一个没有属性的新请求对象,因此您的结果是无效的。
request.getRequestDispatcher("/WebTest-iFrame/iFrame.jsp").forward(request, response);
这将使相同的请求和响应对象转发到请求的URL。