如何插入&等特殊字符且<进入 JSF 组件?值属性?
如何将 &
和 <
等特殊字符插入 JSF 组件 value
属性中?
例如:我想要这样的东西:
<h:outputText value="Tom & Jerry Show" />
当我尝试这个时,我得到以下异常:
javax.faces.view.facelets.FaceletException: 解析错误 /foo.xhtml: 错误跟踪[行: 15] 实体名称必须紧跟在“&”之后在实体参考中。
如果是 <
,我会得到以下异常:
javax.faces.view.facelets.FaceletException:错误解析 /foo.xhtml:错误跟踪[行:15] 与元素类型“h:outputText”关联的属性“value”的值不得包含 '< ;'性格。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要将它们转义为 XML 实体。
这个问题与 JSF 本身无关,而是与视图技术有关。显然您正在使用 Facelets(这非常好!)。然而 Facelets 是一种基于 XML 的视图技术,因此您需要确保模板是格式良好的 XML,并且所有要按原样表示的特殊字符都像上面一样被转义。
在 wikipedia 中,您可以找到需要的预定义字符实体列表 每当您想按原样显示它们时,它们都会在 XML 中转义。它是以下字符实体:
另请参阅:
You need to escape them to XML entities.
This problem is not related to JSF per se, but to the view technology. You're apparently using Facelets (which is perfectly fine!). Facelets is however a XML based view technology, so you would need to ensure that the template is well formed XML and that all special characters which are to be represented as-is, are been escaped like above.
In the wikipedia you can find a list of predefinied character entities which needs to be escaped in the XML whenever you'd like to display them as-is. It are the following character entities:
See also: