20

我正在使用 JSF 1.2

我正在尝试使用打印文本<h:outputtext>

<h:outputText id="warningDose" styleClass="redText" value="#{templatePrescriptionMaintenanceBackingBean.doseWarningText}"></h:outputText>

现在这个变量包含带有 html 标签的文本。<b>等等<i>……

但这会按原样显示内容,而不是实际的粗体或斜体 html 输出。

有什么方法可以<h:outputText>让它给出 html 响应?

4

3 回答 3

42

您应该在 h:outputText 标签中设置:

escape="false"

但是请记住,在 JSF 视图页面和底层 bean 之间混合“视图”构造(即创建带有 HTML 标记的字符串)是一种不好的做法。所有的“视图制作”都应该在视图页面中。

于 2012-05-09T13:57:44.797 回答
7

只需将其设置为不逃脱。

<h:outputText id="warningDose" escape="false" styleClass="redText" value="#{templatePrescriptionMaintenanceBackingBean.doseWarningText}"></h:outputText>
于 2012-05-09T13:51:23.140 回答
1

我有一个非常相似的问题。我的问题在这里

我的 xhtml 页面看起来像 -

<h:outputText  itemEscaped="false" escape="false"    value="#{singleViewResultDO.associatedCode}" />

associatedCode 正在从我想使用 HTML 标记进行条件样式的 SQL 查询中获取值。

这是我的 SQL 查询的样子:

Select A, REPLACE(Wm_Concat(DISTINCT  CASE WHEN sv.rmvd = 0 THEN  ' '||sv.CMPNION_CD  ELSE '<span style=\"color:red; \">' || ' '||sv.CMPNION_CD|| '</span>' END),' , ','') ,  "
from Table

忽略 REPLACE 和 WM_CONCAT,因为它用于显示逗号分隔值。相关的代码是

CASE WHEN sv.rmvd = 0 THEN  ' '||sv.CMPNION_CD  ELSE '<span style=\"color:red; \">' || ' '||sv.CMPNION_CD|| '</span>' END

我想拥有基于条件 rmvd = 0 的标签。由于我的 中有 escape="false" ,因此我不需要在查询中转义我的 html 标签。我的意思是不需要将 < 转换为 < > 到 > 和 " 到 "

另请注意,由于我的跨度中有双引号 "",因此我需要将其转义一次,以便在到达 .

我得到了我想要的输出 - 红色的 8000778

于 2016-05-12T16:33:10.367 回答