从jsp输出中删除空格

Set*_*ner 108 whitespace jsp tomcat

如何从jsp页面的输出中删除额外的空格?我可以在我的web.xml上翻转一个开关吗?是否有特定于Tomcat的设置?

Ron*_*ist 171

有一个trimWhiteSpaces指令应该实现这一点,

在你的JSP中:

<%@ page trimDirectiveWhitespaces="true" %>
Run Code Online (Sandbox Code Playgroud)

或者在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>
Run Code Online (Sandbox Code Playgroud)

不幸的是,如果你有一个必需的空间,它可能也需要剥离,所以你可能需要在某些地方不间断的空间.

  • 在JSP自定义.tag文件中,使用<%@ tag body-content ="scriptless"trimDirectiveWhitespaces ="true"%>. (3认同)
  • 不幸的是,这在Tomcat 6.0.24中不起作用 (2认同)
  • 这两个选项之间的性能有何不同? (2认同)

Bal*_*usC 27

如果您的servletcontainer不支持JSP 2.1 trimDirectiveWhitespaces属性,那么您需要查阅其JspServlet文档以获取任何初始化参数.在例如Tomcat中,您也可以通过在Tomcat 中将trimSpacesinit-param 设置trueJspServletin 来配置它/conf/web.xml:

<init-param>
    <param-name>trimSpaces</param-name>
    <param-value>true</param-value>
</init-param>
Run Code Online (Sandbox Code Playgroud)

一个完全不同的选择是JTidyFilter.它不仅可以修剪空白,还可以在正确的缩进中格式化 HTML.

  • @ria:请注意,您需要了解这只会修剪像JSTL和scriptlet这样的taglib留下的空白.如果要从HTML中修剪所有空格,请前往另一个解决方案.您可以在此处找到过滤器示例:http://balusc.blogspot.com/2007/12/whitespacefilter.html (7认同)

Sim*_*n B 5

TrimDirectiveWhitespaces 仅受支持 JSP 2.1 及更高版本的 servlet 容器支持,或者在 Tomcat、Tomcat 6 的情况下(以及某些版本,例如 Tomcat 6.0.10 没有正确实现它 - 不知道其他版本)。这里有关于trimDirectiveWhitespaces的更多信息:

http://www.oracle.com/technetwork/articles/javaee/jsp-21-136414.html

和这里

http://raibledesigns.com/rd/entry/trim_spaces_in_your_jsp1