XML 实体不呈现

XML entities don't render

使用 h:outputText 我想使用 ← 显示左箭头 ←。但它只是不呈现在页面上(甚至不在检查元素输出中)。我做错了什么?

<h:outputText value="Overtime (Remaining &larr; New)" />

根本问题是,&larr; 不是 XML 实体。这是一个 HTML 实体。

Facelets 基于 XML,XML 只有 5 个预定义实体:&amp;&quot;&apos;&lt;&gt;。您可能见过或听说过的所有其他实体都是 HTML 个实体,在 XML.

中不受支持

历史上,当使用劣质字符编码(例如 ISO-XXX 而不是 UTF-XXX)时,HTML 实体无论如何都用于支持 "special" 字符。但是自从 UTF-XXX 字符编码的引入和全球支持以来,我们真的不再需要这些 HTML 实体了。

XML支持UTF-8,所以直接打印即可。

<h:outputText value="Overtime (Remaining ← New)" />

甚至没有完整的 <h:outputText>,因为您实际上不需要在此处转换任何内容。

Overtime (Remaining ← New)

另请参阅:

  • How to use HTML character entities inside EL in JSF?
  • Is it suggested to use h:outputText for everything?