我从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。
答案 0 :(得分:1)
我认为它足够快,但它非常棘手。 &#34; response.getWriter()&#34;和JSP&#34; out&#34;变量(我不知道),不是一回事。
巧合的是,我的代码以前工作过。
在我使用&#34; out&#34;之前,我还必须包含jsp.api.jar。 (JSPWriter)变量。
此处的相关信息: