2016-08-20 4 views
1

私のJSPページから出力を分割しています。writer.write()出力では最初と2番目にタグは省略されています。JSPページがタグ出力から切り離される

私は、次のような単純なJSPページ

<%@ page import="com.AAA.SiteTemplate.RenderPageInterface" %> 
<%@ page import="java.io.Writer" %> 
<%@ page import="java.io.IOException" %> 
<%@ page import="com.NatureRelaxation.SiteTemplate.RenderPageInterfaceNull" %><%-- 
    Created by IntelliJ IDEA. 
    User: 
--%> 
<%@ page contentType="text/html;charset=UTF-8" language="java" %> 
<html> 
<head> 
    <% 
     RenderPageInterface obj = (RenderPageInterface) request.getAttribute("renderPageInterface"); 
     if (obj == null){ 
      obj = new RenderPageInterfaceNull(); 
     } 
    %> 
    <title><% response.getWriter().write(obj.getTitle()); %></title> 
    <style type="text/css"> 
    </style> 
</head> 
<body> 
<% 
obj.renderHTML(response.getWriter()); 
%> 
</body> 
</html> 

を持っていると私はこの小さな機能を経由して、それを含める:

public static void doRequest(HttpServletRequest req, HttpServletResponse res, RenderPageInterface renderPageInterface) throws ServletException, IOException{ 
    req.setAttribute("renderPageInterface", renderPageInterface); 
    RequestDispatcher rd = req.getRequestDispatcher("/WEB-INF/templates/header.jsp"); 
    rd.include(req, res); 
} 

私は今取得していますという応答が

My page titleMypagebody.... 





<html> 
<head> 

    <title></title> 

などであります途中に4つの改行があります。私はそれがコンパイラエラーでなければならないと思っていますが、キャッシュ(IntelliJ)をクリアして再起動し、Tomcat 8に再デプロイしても問題は解決しません。サーバーが再起動されるまで、すべて正常に動作しましたが、現在は何も修正されていません。私はJSP上でデバッガを実行し、すべてが順番に行く。

更新:

それは、このタグのない細かい実行されます "<%のresponse.getWriter()書き(obj.getTitle());%>" が、タグがあり、ボディとの両方タイトルは上部に、テンプレートは下部に書かれています。 getTitle()はStringを返します。

答えて

1

私はそれを十分に速く理解しましたが、それはかなり難しいものでした。 "response.getWriter()"とJSPの "out"変数(私が知りませんでした)は同じものではありません。

私のコードが以前に働いたのは偶然である。

"out"(JSPWriter)変数を使用するには、jsp.api.jarをインクルードする必要もありました。ここ

関連情報:

Difference between JspWriter and PrintWriter in Java EE?

what is difference between JspWriter and PrintWriter?

関連する問題