Jsf 2 如何在JSF中使用EL中的HTML字符实体?
我想为Jsf 2 如何在JSF中使用EL中的HTML字符实体?,jsf-2,facelets,Jsf 2,Facelets,我想为h:link组件使用in-a-value属性 以下是我的尝试(目前不起作用): 我知道我可以使用HTML锚,但是有没有办法在(EL)表达式中实现呢?正确的方法是什么?Facelets是基于XML的,由XML解析器处理。&mdash是一个HTML实体,在XML中无法识别。在XML中,只有列在“”、&;、'、和中的五个代码可以识别 默认情况下,Facelets/XML已经使用UTF-8,HTML实体基本上是UTF-8之前时代的遗留物,在UTF-8文档中不需要,因此您可以将实际字
h:link
组件使用in-a-value属性
以下是我的尝试(目前不起作用):
我知道我可以使用HTML锚,但是有没有办法在(EL)表达式中实现呢?正确的方法是什么?Facelets是基于XML的,由XML解析器处理。
&mdash
是一个HTML实体,在XML中无法识别。在XML中,只有列在“”
、&;
、'
、
和
中的五个代码可以识别
默认情况下,Facelets/XML已经使用UTF-8,HTML实体基本上是UTF-8之前时代的遗留物,在UTF-8文档中不需要,因此您可以将实际字符纯/未编码放在模板中(前提是编辑器能够将文件另存为UTF-8)
换句话说,简单地调整一下
<h:link value="#{somethingHere} — #{anotherHere}">
另一种更能满足确切错误消息的方法是在doctype中自己显式声明实体引用
<!DOCTYPE html [
<!ENTITY mdash "—">
]>
但这不是一般的建议/方法,因为您需要在使用该字符的每个XML文件上重复此操作。您能否详细说明为什么不建议在doctype中使用实体声明?它将明确需要使用该字符放置在每个XML模板中,您不能仅将其放置在mas中ter模板之类的。我个人会把
-
字符普通/未编码放在模板中。如果对你来说失败(Mojibake等),可能您需要重新配置编辑器以将文件另存为UTF-8。Facelets在默认情况下已经使用UTF-8来解析/服务XML文件。理解,再次感谢!我将使用数字引用,以防止其他开发人员使用Mojibake。
<h:link value="#{somethingHere} — #{anotherHere}">
<h:link value="#{somethingHere} — #{anotherHere}">
<h:link value="#{somethingHere} — #{anotherHere}">
<!DOCTYPE html [
<!ENTITY mdash "—">
]>