如何在 JSF 页面中插入不间断空格字符?
Posted
技术标签:
【中文标题】如何在 JSF 页面中插入不间断空格字符?【英文标题】:How do I insert non breaking space character in a JSF page? 【发布时间】:2010-11-24 06:45:30 【问题描述】:如何在 JSF 页面中插入不间断空格字符
就像我可以在 html 中使用  
一样?
JSF中有这样的标签吗?
【问题讨论】:
相关(在技术上是一个副本,有更好的解释):Error Parsing /page.xhtml: Error Traced(line: 42) The entity “nbsp” was referenced, but not declared 【参考方案1】:没有必要给 160 。 141也可以。为 value 字段提供 value="" 。
【讨论】:
【参考方案2】:你可以使用primefaces
库
<p:spacer />
【讨论】:
这没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review @ihebiheb 是 +6,不要告诉我这是错的,因为我知道这是真的,只是你说废话.. 您的答案被标记为太短,因为它缺少详细信息。我建议您添加详细信息,让用户了解“为什么”您的解决方案可能是一个好的或最好的解决方案。添加详细信息让用户使您的解决方案适应略有不同的问题。【参考方案3】:只是添加到选项中:<h:outputText value="&amp;nbsp;" escape="false"/>
工作
【讨论】:
我觉得转义是如此重要,以至于这可能会让位于不安全的解决方案。只为 nbsp / 其他 html 元素放弃转义是很棘手的。此外,这很冗长,但还有更短的替代方案。【参考方案4】:你也可以使用primefaces<p:spacer width="10" height="10" />
【讨论】:
【参考方案5】:我发现如果我在页面中使用&nbsp;
实体,解析器会报错。经过一番研究,我了解到如果我在页面的开头添加了一个 DOCTYPE 声明,则该实体是允许的。我使用这个 DOCTYPE 声明:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
这样做的副作用是生成的代码(如使用 Web 浏览器的“查看源代码”功能所见)实际上并不包含 &nbsp;
实体。相反,它包含表示不间断空格的实际字符。尽管它有效,但这并不是我真正想要的。我仍在寻找一种方法,使解析器不会用字符替换实体。
更多信息在这里:http://java.net/jira/browse/JAVASERVERFACES-1576
【讨论】:
【参考方案6】:最简单的方法是:
<h:outputText value=" " />
【讨论】:
在我看来,这不是最简单的方法。【参考方案7】:直接输入 HTML 编号对我有用:
 
【讨论】:
哦,我现在只想给出答案。很高兴,我没有监督你的。【参考方案8】:如果您使用 RichFaces 库,您还可以使用标签 rich:spacer,它将添加具有给定长度和高度的“不可见”图像。通常比添加大量 nbsp 更容易和更漂亮;。
您希望空间显示的位置只需添加:
<rich:spacer />
【讨论】:
+1 虽然这里没有完全问到这个问题,但你的回答对我有帮助(关于标题) 这里也一样,PrimeFaces中也有这个标签:<p:spacer />
【参考方案9】:
这会起作用
<h:outputText value=" " />
【讨论】:
为什么需要<h:outputText>
?
确实,使用 HTML 数字而不是其他 html 快捷方式是可行的方法。【参考方案10】:
最后,你可以试试这个,如果只是使用&nbsp;
失败...
<h:outputText value="& nbsp;" escape="false"/>
(和 Tom 一样,我在 &
和 nbsp;
之间添加了一个空格)
【讨论】:
我觉得转义是如此重要,以至于这可能会让位于不安全的解决方案。只为 nbsp / 其他 html 元素放弃转义是很棘手的。此外,“空间”可能会被遗忘。这是相当冗长的,虽然有更短的替代方案。以上是关于如何在 JSF 页面中插入不间断空格字符?的主要内容,如果未能解决你的问题,请参考以下文章