我怎样才能使 h:outputText 粗体中的值的一部分?
How can i make part of a value in a h:outputText Bold?
如何将值的一部分设为 h:outputText 粗体?
我想要粗体的名称:
<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: <b>#{Controller.Object.name}</b>" escape="false" />
这不仅读起来更丑陋,而且在 #{Controller.Object.name}
是客户端控制的值的情况下还会打开 XSS 攻击漏洞。
另请参阅:
- Is it suggested to use h:outputText for everything?
- CSRF, XSS and SQL Injection attack prevention in JSF
对我来说,将 <p></p>
放在 .properties
文件的文本中或任何定义 Controller.Object.name
值的地方更有意义。更干净,您不必弄乱编码符号。
如何将值的一部分设为 h:outputText 粗体? 我想要粗体的名称:
<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: <b>#{Controller.Object.name}</b>" escape="false" />
这不仅读起来更丑陋,而且在 #{Controller.Object.name}
是客户端控制的值的情况下还会打开 XSS 攻击漏洞。
另请参阅:
- Is it suggested to use h:outputText for everything?
- CSRF, XSS and SQL Injection attack prevention in JSF
对我来说,将 <p></p>
放在 .properties
文件的文本中或任何定义 Controller.Object.name
值的地方更有意义。更干净,您不必弄乱编码符号。