如何从jsp页面的输出中去除多余的空格?我可以在我的web.xml上进行切换吗?是否有特定于Tomcat的设置?
如何从jsp页面的输出中去除多余的空格?我可以在我的web.xml上进行切换吗?是否有特定于Tomcat的设置?
Answers:
有一个trimWhiteSpaces指令可以完成此操作,
在您的JSP中:
<%@ page trimDirectiveWhitespaces="true" %>
或在jsp-config部分中的web.xml(请注意,此操作从Servlet规范2.5开始。):
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<trim-directive-whitespaces>true</trim-directive-whitespaces>
</jsp-property-group>
</jsp-config>
不幸的是,如果您有所需的空间,则可能还需要剥离该空间,因此在某些位置可能需要不间断的空间。
web.xml
:<init-param> <param-name> trimSpaces </ param-name> <param-value> true </ param-value> </ init-param>
如果您的servlet容器不支持JSP 2.1 trimDirectiveWhitespaces
属性,那么您需要查阅其JspServlet
文档以获取任何初始化参数。例如在Tomcat中,您也可以通过在Tomcat的trimSpaces
init true
中将init-param 设置为JspServlet
in 来配置它/conf/web.xml
:
<init-param>
<param-name>trimSpaces</param-name>
<param-value>true</param-value>
</init-param>
一个完全不同的替代方法是JTidyFilter。它不仅可以修剪空格,而且可以以正确的缩进格式设置 HTML 格式。
trimDirectiveWhitespaces仅受支持JSP 2.1及更高版本的servlet容器支持,或者在Tomcat或Tomcat中支持Tomcat 6(以及某些版本,例如Tomcat 6.0.10,不能正确实现它-对其他版本一无所知)。这里有关于trimDirectiveWhitespaces的更多信息:
http://www.oracle.com/technetwork/articles/javaee/jsp-21-136414.html
和这里
不直接是您的要求,但是对我有所帮助的是,以巧妙的方式将HTML注释标记放在jsp标记周围,并将空格放在servlet标记(<%%>)内:
${"<!--"}
<c:if test="${first}">
<c:set var="extraClass" value="${extraClass} firstRadio"/>
</c:if>
<c:set var="first" value="${false}"/>
${"-->"}<%
%><input type="radio" id="input1" name="dayChooser" value="Tuesday"/><%
%><label for="input1" class="${extraClass}">Tuesday</label>
您可以更进一步,也可以在构建时删除html标记之间的换行符(回车符)。
例如更改:
<p>Hello</p>
<p>How are you?</p>
变成:
<p>Hello</p><p>How are you?</p>
为此,请使用maven-replacer-plugin
并在中进行设置pom.xml
:
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<version>1.5.3</version>
<executions>
<execution>
<id>stripNewlines</id>
<phase>prepare-package</phase>
<goals>
<goal>replace</goal>
</goals>
<configuration>
<basedir>${project.build.directory}</basedir>
<filesToInclude>projectname/WEB-INF/jsp/**/*.jsp</filesToInclude>
<token>>\s*<</token>
<value>><</value>
<regexFlags>
<regexFlag>MULTILINE</regexFlag>
</regexFlags>
</configuration>
</execution>
</executions>
</plugin>
这只会修改构建目录中的JSP,而不会触及源代码中的JSP。
您可能需要调整<filesToInclude>
JSP所在的路径()。
请使用修剪功能,例如
fn:trim(string1)
使用添加/编辑您的tomcat catalina.properties
文件
org.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false
另请参阅:https : //confluence.sakaiproject.org/display/BOOT/Install+Tomcat+7