首页 文章

JSF2 EL html输出

提问于
浏览
-2

背景

我有一个依赖于JSF2的现有Web应用程序 . 在大多数页面中,有表达式从各种属性文件输出文本 . 某些属性可能包含html . 但是,JSF表达式将html转换为纯文本 . 我找到的解决方案是使用<h:outputText>并将escape设置为false . 由于需要包装的表达量很大,使用它会很麻烦 .

问题

我的问题是,有没有办法配置所有表达式不逃避HTML?

1 回答

  • 0

    如果我是你,我会创建自己的复合组件,可以在xhtml中调用

    <myComponents:outputText value="<STRONG>the html taged value</STRONG>">

    只需将此自定义组件添加到defaut jsf文件夹 src/webapp/components 中的新xhtml文件中 .

    喜欢 :

    src / webapp / components / myComponents / outputText.xhtml

    <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <ui:composition xmlns="http://www.w3.org/1999/xhtml"
        xmlns:ui="http://java.sun.com/jsf/facelets"
        xmlns:f="http://java.sun.com/jsf/core"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:c="http://java.sun.com/jsp/jstl/core"
        xmlns:cc="http://java.sun.com/jsf/composite">
    
        <cc:interface>
            <cc:attribute name="value" required="true"/>
        </cc:interface>
    
        <cc:implementation>
                <h:outputText value="#{cc.attrs.value}" escape="false"/>
        </cc:implementation>
    
    </ui:composition>
    

    不要忘记在 ui:composition 标签中使用组件 xmlns:field="http://java.sun.com/jsf/composite/components/myComponents 的xhtml页面中添加folowwing名称空间

    希望这可以帮助...

相关问题