如何在 h:outputText Bold 中制作值的一部分?
我想要粗体的名称:
<h:outputText value="Normal Text: #{Controller.Object.name}" />
我试过:<h:outputText value="Normal Text: <b>#{Controller.Object.name}</b>" />
收到此错误:“与元素类型“h:outputText”关联的属性“value”的值不得包含“经过这里和其他页面的一些搜索,发现属性 escape="false" 可以解决这个问题……但对我来说没有区别,
<h:outputText escape="false" value="Normal Text: <b>#{Controller.Object.name}</b>" />
仍然有同样的错误。

有人遇到过这个问题吗?

最佳答案

你真的需要 <h:outputText> 吗?
在 Facelets 中,您可以只在模板文本中使用 EL:

Normal Text: <b>#{Controller.Object.name}</b>
如果您真的坚持使用 <h:outputText> ,那么您确实应该手动转义 XML 实体并使用 escape="false" 显示它:
<h:outputText value="Normal Text: &lt;b&gt;#{Controller.Object.name}&lt;/b&gt;" escape="false" />
这不仅读起来更难看,而且还打开了一个 XSS 攻击漏洞,以防 #{Controller.Object.name} 是客户端控制的值。
也可以看看:
  • Is it suggested to use h:outputText for everything?
  • CSRF, XSS and SQL Injection attack prevention in JSF
  • 关于html - 我怎样才能让 h :outputText Bold? 中的值成为一部分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28433340/

    10-11 23:35