我真的很难过这个。我想输出一个列表并让标签文件处理逗号,单数与复数等,但是当我显示列表时它完全忽略了空格,所以allrunstogetherlikethis。我尝试使用HTML实体“thinsp”,“ensp”和“emsp”(我不能使用“nbsp”,这些必须要破坏),但它们在IE上都非常宽,除了thinsp,这太瘦了其他一切。
编辑: 不行。标签的输出根本没有空格。虽然JSP中的任何内容都具有正常的间距。显然我可以把所有内容放在JSP中,但这是代码可以在多个JSP上运行,因此标记文件会很有意义。
答案 0 :(得分:14)
这实际上是EL解析器中的一个错误,它导致EL表达式之间的空格被吃掉。 E.g。
${bean.foo} ${bean.bar} ${bean.waa}
将打印为(假设它们返回与其属性名称完全相同的String值):
foobarwaa
我记得以前在某个地方报道了这个问题,但我现在似乎无法找到它。到目前为止,您可以使用JSTL c:out
标记来修复它:
<c:out value="${bean.foo} ${bean.bar} ${bean.waa}" />
正确打印为:
foo bar waa
答案 1 :(得分:2)
也许将jsp内容放在html <pre>
标记中?
在我看来这是正确的事情,因为列表是预先格式化的内容。
答案 2 :(得分:0)
所以你说你的标签根本没有打印出空格? 打印出来有空白吗?
您可以发布代码,以及您如何使用它的简短示例吗?
答案 3 :(得分:0)
我使用了 
实体而不是空格,但一般来说我觉得这很糟糕,要么吃掉所有空格而又要用实体破解,否则你在生成的HTML代码中会有很大的空间。