jsf-2 – 如何在JSF中使用EL内部的HTML字符实体?

jsf-2 – 如何在JSF中使用EL内部的HTML字符实体?,第1张

概述我想在h:link组件的值属性中使用 em dash. 这是我的尝试(当前不起作用): <h:link value="#{somethingHere} — #{anotherHere}"> <f:param name="identifier" value="#{somethingHere.identifier}" /></h:link> 这会导致FaceletsExcepti 我想在h:link组件的值属性中使用 em dash.

这是我的尝试(当前不起作用):

<h:link value="#{somethingHere} &mdash; #{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)...

我知道我可以使用HTML锚点,但是有没有办法在EL表达式中执行它?这样做的正确方法是什么?

解决方法 Facelets是基于XML的,由XML解析器处理. & mdash;是一个HTML实体,在XML中无法识别.只有 this Wikipedia page,& quot;,& amp;,& lt;中列出的五个.和& gt;,在XML中被识别.

默认情况下,Facelets / XML使用UTF-8,因此您可以将实际字符显式/未编码放入模板中(前提是编辑器能够将文件另存为UTF-8).

<h:link value="#{somethingHere} — #{anotherHere}">

如果出于某种原因这不是一个选项,那么你可以使用格式& #nnnn;中的数字字符引用,就像使用&#160;代表一个& nbsp;在XML中.您可以在fileformat.info:Unicode Character ‘EM DASH’ (U+2014)中找到数字字符引用

EnCodings

HTML Entity (decimal) &#8212;

所以,这应该适合你:

<h:link value="#{somethingHere} &#8212; #{anotherHere}">

另一种应该更准确地满足确切错误消息的替代方法是在DOCTYPE中明确地声明实体引用.

<!DOCTYPE HTML [    <!ENTITY mdash "&#8212;"> ]>

但这不是一般的建议/方法,因为您需要在使用该字符的每个XML文件上重复此 *** 作.

总结

以上是内存溢出为你收集整理的jsf-2 – 如何在JSF中使用EL内部的HTML字符实体?全部内容,希望文章能够帮你解决jsf-2 – 如何在JSF中使用EL内部的HTML字符实体?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1081315.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存