私はjspを持っています。 jsp loadでサーブレットを呼び出し、結果を以下のように同じJSPで表示します。サーブレットでサーブレットからjspを呼び出す際に例外が発生しますか?
Some.jsp
<html>
<jsp:include page="/HelloWorld"/>
<%Iterator itr;%>
<% List data= (List)request.getAttribute("results");
for (itr=data.iterator(); itr.hasNext();)
{
%>
<TABLE align="center" cellpadding="15" border="1" style="background-color: #ffffcc;">
<TR>
<TD align="center"><%=itr.next()%></TD>
</TR>
</TABLE>
<%}%>
</body>
</html>
私はリクエストに結果を格納し、以下のようにJSPを呼び出すためのRequestDispatcherを使用しています。
public class SomeServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException{
List<String> list = new ArrayList<String>();
//some logic to populate list
request.setAttribute("results", list);
request.getRequestDispatcher("/WEB-INF/Some.jsp").forward(request, response);
}
}
しかし、JSPで結果を表示しながら、私は例外の下に取得しています:
はjava.io.IOException: Stream closed
at org.apache.jasper.runtime.JspWriterImpl.ensureOpen(JspWriterImpl.java:202)
at org.apache.jasper.runtime.JspWriterImpl.clearBuffer(JspWriterImpl.java:157)
私を助けてください..
JSPは、JSP、サーブレットへの転送を、含まれて
リクエストをJSPに転送した後に返信する必要があります。 –