这个方案有个缺点,它会去掉所有jsp EL标签之间的空格的换行符,在部分情况下也来带来不便。 如:Your name is ${firstName} ${lastName}. ==输出为==> Your name is firstNamelastName. 两个${}变量之间的空格也会消失。要解决这个问题是相当麻烦,要引入一个只有一个空格的变量。 <c:set var="one_space"> </c:set> Your name is ${firstName}${one_space}${lastName}. 这样就正常了,麻烦。虽然可以在一些全局变量的地方来增加一个one_space的变量,但代码看上去还是不爽。 方案二,我比较喜欢。 这个方案只有在支持jsp 2.1的web服务器上才可以使用,如Tomcat6。 Jsp2.1多了一个很有用的命令; <%@ page trimDirectiveWhitespaces="true" %> 这个命令可以使jsp输出的html时去除多余的空行(jsp上使用EL和tag会产生大量的空格和空行),没有使用trimSpaces的问题,现在jsp输出html也可以很好地排版,看上去也专业;以前我一直都羡慕velocity的模板,输出html十分干净好看,现在jsp也可以了。 另外提一下,Tomcat6有一些兼容性问题,例如不能使用#{}这种代码在jsp中,因为会被当成JSF脚本执行。 虽然这是一个很小的问题,但我们还是要注意细节。