作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在h:link
组件的value属性中使用em dash。
这是我的尝试(当前无法正常工作):
<h:link value="#{somethingHere} — #{anotherHere}">
<f:param name="identifier" value="#{somethingHere.identifier}" />
</h:link>
FaceletsException
:
FaceletException: Error Parsing /index.xhtml: Error Traced[line: 13]
The entity "mdash" was referenced, but not declared.
at com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:394)
...
最佳答案
Facelets是基于XML的,并由XML解析器处理。 —
是HTML实体,无法用XML识别。 XML中仅识别this Wikipedia page,"
,&
,'
,<
和>
中列出的五个。
Facelets/XML默认情况下已经使用UTF-8,HTML实体基本上是UTF-8之前时代的遗留物,在UTF-8文档中没有必要,因此您可以将实际字符简单/未编码地放在模板中(提供编辑器可以将文件另存为UTF-8)。
换句话说,只需调整
<h:link value="#{somethingHere} — #{anotherHere}">
至
<h:link value="#{somethingHere} — #{anotherHere}">
如果由于某种原因这不是一个选择,那么您可以改用
&#nnnn;
格式的数字字符引用,就像使用
 
表示XML中的
一样。您可以在fileformat.info中找到数字字符引用:
Unicode Character 'EM DASH' (U+2014)
Encodings
HTML Entity (decimal)
—
<h:link value="#{somethingHere} — #{anotherHere}">
一种替代方法,应进一步满足确切的错误消息,该方法是在doctype中自己明确声明实体引用。
<!DOCTYPE html [
<!ENTITY mdash "—">
]>
但这不是一般的建议/方法,因为您需要在每个使用该字符的XML文件中重复此操作。
关于jsf-2 - 如何在JSF的EL中使用HTML字符实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11992707/
我是一名优秀的程序员,十分优秀!