如何在h:outputText Bold中创建值的一部分? 我想要粗体名称:
<h:outputText value="Normal Text: #{Controller.Object.name}" />
我试过:<h:outputText value="Normal Text: <b>#{Controller.Object.name}</b>" />
得到了这个错误:&#34; 属性&#34;值&#34;的值与元素类型相关联&#34; h:outputText &#34;不得包含&#39;&lt;&#39; 。字符#&34;
在此处和其他网页进行了一些搜索后,发现属性escape="false"
可以解决这个问题......但对我来说并没有什么不同,
<h:outputText escape="false" value="Normal Text: <b>#{Controller.Object.name}</b>" />
仍然有同样的错误。
有人有这个问题吗?
答案 0 :(得分:5)
你真的需要<h:outputText>
吗?
在Facelets中,您只需在模板文本中使用EL:
Normal Text: <b>#{Controller.Object.name}</b>
如果您真的坚持使用<h:outputText>
,那么您应该手动转义XML实体并使用escape="false"
显示它:
<h:outputText value="Normal Text: <b>#{Controller.Object.name}</b>" escape="false" />
这不仅会读取丑陋,而且还会打开XSS攻击漏洞,以防#{Controller.Object.name}
是客户端控制的值。
答案 1 :(得分:0)
对我来说,将<p></p>
放在.properties
文件中的文本中或定义Controller.Object.name
值的任何地方都更有意义。更清洁,您也不必弄乱编码符号。