taglibs和变量声明在源页面的顶部生成空行

时间:2013-11-20 15:24:11

标签: java jsp servlets jstl taglib

我已在variables页面中声明了一些taglib和jsp,如下所示:

<%@ 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">

我刚刚放置一个dot来演示空行。 关于如何删除这些空行的任何想法?

1 个答案:

答案 0 :(得分:13)

您需要告诉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>

或者,如果您想在服务器范围内配置它而不是基于每个Web应用程序,请参阅有关此问题的servletcontainer文档。您没有告诉您正在使用哪一个,但是在Tomcat的情况下,需要编辑其/conf/web.xml以将以下条目添加到JSP servlet的<servlet>声明中:

<init-param>
    <param-name>trimSpaces</param-name>
    <param-value>true</param-value>
</init-param>

对具体问题

无关,您的@page包含大量默认和重复的混乱。它可以简化如下:

<%@page pageEncoding="UTF-8"%>