JSP页面与标记输出分开

时间:2016-08-20 01:00:36

标签: java jsp tomcat8

我从JSP页面获得了分割输出,其中first.write()输出第一个和第二个带有标记的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上运行调试器,一切都按顺序进行。

更新

没有这个标签就可以正常运行“&lt;%response.getWriter()。write(obj.getTitle());%&gt;”,但是当标签出现时,正文和标题都写在顶部和底部的模板。 getTitle()返回一个String。

1 个答案:

答案 0 :(得分:1)

我认为它足够快,但它非常棘手。 &#34; response.getWriter()&#34;和JSP&#34; out&#34;变量(我不知道),不是一回事。

巧合的是,我的代码以前工作过。

在我使用&#34; out&#34;之前,我还必须包含jsp.api.jar。 (JSPWriter)变量。

此处的相关信息:

Difference between JspWriter and PrintWriter in Java EE?

what is difference between JspWriter and PrintWriter?