好久没有写jsp页面了,也没太大注意,今天帮助人家处理一个返回值的问题的时候,发现jsp的<%%>会产生一个回车换行,导致如图所示的效果。

110125519.jpg

我使用的一种方法是把<%%>指令都移到一行去,这样就不会出现换行的情况了。

这个方式的一个前提是只是用来返回值的情况的处理,比如ajax请求等,缺点就是代码的可读性差。

建议最好使用servlet就不会出现这种情况。

以下是网络上别人的处理方式:

1. 支持JSP 2.1+ ,在每个要去空行的页面里包含下面代码:

<%@ page trimDirectiveWhitespaces="true" %>


2. 支持servlet 2.5+, 即 web.xml的 XSD版本为2.5,在web.xml中加入如下代码

<jsp-config>
None.gif      <jsp-property-group>
None.gif        <url-pattern>*.jsp</url-pattern>
None.gif        <trim-directive-whitespaces>true</trim-directive-whitespaces>
None.gif      </jsp-property-group>
</jsp-config>


3. Tomcat 5.5.x+,在Tomcat安装目录/conf/web.xml中找到名叫"jsp"的servlet,添加下面一段代码:

<init-param>
None.gif        <param-name>trimSpaces</param-name>
None.gif        <param-value>true</param-value>
</init-param>


其中1,2中方法需要Tomcat6++版本