我想在组件的value属性中使用em dashh:link.
这是我的尝试(当前不起作用):
<h:link value="#{somethingHere} — #{anotherHere}">
<f:param name="identifier" value="#{somethingHere.identifier}" />
</h:link>
Run Code Online (Sandbox Code Playgroud)
这导致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)
...
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用HTML锚点,但是有没有办法在EL表达式中执行它?这样做的正确方法是什么?
Facelets是基于XML的,由XML解析器处理.这—是一个HTML实体,无法在XML中识别.只有在列出的五个此维基百科页面,",&,',<和>,在XML的认可.
默认情况下,Facelets/XML使用UTF-8,因此您可以将实际字符显式/未编码放入模板中(前提是编辑器能够将文件另存为UTF-8).
<h:link value="#{somethingHere} — #{anotherHere}">
Run Code Online (Sandbox Code Playgroud)
如果由于某种原因这不是一个选项,那么您可以改为使用格式中的数字字符引用&#nnnn;,就像 用来表示 XML 格式一样.您可以在fileformat.info中找到数字字符引用:Unicode Character'EM DASH'(U + 2014)
编码
HTML实体(十进制)
—
所以,这应该适合你:
<h:link value="#{somethingHere} — #{anotherHere}">
Run Code Online (Sandbox Code Playgroud)
另一种应该更准确地满足确切错误消息的替代方法是在doctype中明确地声明实体引用.
<!DOCTYPE html [
<!ENTITY mdash "—">
]>
Run Code Online (Sandbox Code Playgroud)
但这不是一般的建议/方法,因为您需要在使用该字符的每个XML文件上重复此操作.
| 归档时间: |
|
| 查看次数: |
3628 次 |
| 最近记录: |