JSP页面与标记输出分离



我从JSP页面获得分割输出,其中writer.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上运行调试器,一切都井然有序。

更新:

如果没有这个标签"<% response. getwwriter ().write(obj.getTitle());%>",但是当标签在那里时,正文和标题都写在顶部,模板写在底部。getTitle()返回字符串

我很快就明白了,但这很棘手。"response. getwwriter()"和JSP的"out"变量(我不知道)不是一回事。

这是一个巧合,我的代码以前工作。

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

相关信息:

JspWriter和printwwriter在Java EE中的区别?

JspWriter和printwwriter的区别是什么?

相关内容

  • 没有找到相关文章

最新更新