首页 文章

<h:outputtext>按原样输出HTML而不是实际的HTML [重复]

提问于
浏览
16

这个问题在这里已有答案:

我正在使用JSF 1.2

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

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

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

但它显示内容,而不是实际的粗体或斜体html输出 .

我们有什么方法可以使它 <h:outputText> 这样它会给出html响应吗?

3 回答

  • 1

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

    escape="false"
    

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

  • 36

    只是把它设置为不逃避 .

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

    我有一个非常相似的问题 . 我的问题是here

    我的xhtml页面看起来像 -

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

    associatedCode从SQL查询中获取值,我想在其中使用HTML标记来创建条件样式 .

    这是我的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的标签 . 因为,我在我的转义=“假”,我不需要在查询中转义我的html标签 . 我的意思是不需要将<to <>转换为>和“to”

    另请注意,由于我的 Span 中有双引号“”,因此我需要将其转义一次,以便它到达时不会被转义 .

    我按照需要获得输出 - 8000778红色

相关问题