如何使JSP标记文件不忽略所有空格?

时间:2008-10-28 21:10:34

标签: jsp whitespace jsp-tags html-entities

我真的很难过这个。我想输出一个列表并让标签文件处理逗号,单数与复数等,但是当我显示列表时它完全忽略了空格,所以allrunstogetherlikethis。我尝试使用HTML实体“thinsp”,“ensp”和“emsp”(我不能使用“nbsp”,这些必须要破坏),但它们在IE上都非常宽,除了thinsp,这太瘦了其他一切。

编辑:  不行。标签的输出根本没有空格。虽然JSP中的任何内容都具有正常的间距。显然我可以把所有内容放在JSP中,但这是代码可以在多个JSP上运行,因此标记文件会很有意义。

4 个答案:

答案 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)

我使用了&#32;实体而不是空格,但一般来说我觉得这很糟糕,要么吃掉所有空格而又要用实体破解,否则你在生成的HTML代码中会有很大的空间。