XML 实体不呈现
XML entities don't render
使用 h:outputText
我想使用 ←
显示左箭头 ←。但它只是不呈现在页面上(甚至不在检查元素输出中)。我做错了什么?
<h:outputText value="Overtime (Remaining ← New)" />
根本问题是,←
不是 XML 实体。这是一个 HTML 实体。
Facelets 基于 XML,XML 只有 5 个预定义实体:&
、"
、'
、<
、>
。您可能见过或听说过的所有其他实体都是 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?
使用 h:outputText
我想使用 ←
显示左箭头 ←。但它只是不呈现在页面上(甚至不在检查元素输出中)。我做错了什么?
<h:outputText value="Overtime (Remaining ← New)" />
根本问题是,←
不是 XML 实体。这是一个 HTML 实体。
Facelets 基于 XML,XML 只有 5 个预定义实体:&
、"
、'
、<
、>
。您可能见过或听说过的所有其他实体都是 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?