我在jsp页面中声明了一些taglibs和变量,如下所示:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <c:set var="site" scope="session" value="${site}"/> <c:set var="thumb" scope="session" value="${thumbnail}"/> <c:set var="geoCode" scope="session" value="${geoCode}"/> ... <fmt:setLocale value="${local}" /> <fmt:setBundle basename="MessagesBundle" /> <!DOCTYPE html> <head> <Meta charset="utf-8"> ...
当我运行应用程序,然后查看源代码,我在源页面上看到空白的新行:
. <!DOCTYPE html> <head> <Meta charset="utf-8">
我只是放了一个点来展示空行.
任何关于如何删除这些空行的想法?
解决方法
您需要告诉JSP servlet修剪指令空格.您可以通过将以下条目添加到webapp的web.xml来实现:
<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <trim-directive-whitespaces>true</trim-directive-whitespaces> </jsp-property-group> </jsp-config>
或者,如果您希望将其配置为服务器范围而不是基于每个webapp,那么请参考servletcontainer文档.你没有告诉你使用哪一个,但是在Tomcat的情况下,这将是一个编辑/conf/web.xml的问题,将以下条目添加到< servlet> JSP servlet的声明:
<init-param> <param-name>trimSpaces</param-name> <param-value>true</param-value> </init-param>
与具体问题无关,您的@page包含很多默认和重复的混乱.可以简化如下:
<%@page pageEncoding="UTF-8"%>