【问题标题】:rendered tag on class types of css using jsf使用 jsf 在 css 的类类型上呈现标签
【发布时间】:2013-09-03 09:39:21
【问题描述】:

我想知道是否有一个库可以让我执行以下操作:

<h:outputText value="blablabla">
    <x:styleClass value="class1" rendered="#{bean.firstboolean}"/>
    <x:styleClass value="class2" rendered="#{bean.secondboolean}"/>
</h:outputText>

因此根据表达式在运行时是否返回 true 来启用类。

【问题讨论】:

    标签: css jsf render el


    【解决方案1】:

    您可以从您的 bean 轻松做到这一点。在您的xhtml 中使用类似:

    <h:outputText value="blablabla" styleClass="#{bean.styleClass}"/>
    

    在你的 bean 中:

    public String getStyleClass(){
       return firstboolean ? "class1" : "class2";
    }
    

    更新:如果您不希望此逻辑出现在您的 bean 中,您可以在 xhtml 中使用该逻辑:

    <h:outputText value="blablabla"
                  styleClass="#{bean.firstboolean ? 'class1' : 'class2'}"/>
    

    最好写一个custom EL function 来创建可重用的逻辑,结果如下:

    <h:outputText value="blablabla"
                  styleClass="#{mylib:styleForObject(object)}"/>
    

    【讨论】:

    • 是的,可以这样做,但会有点违反 MVC 原则,对吧?我正在寻找一个像这样的标签,并希望有人知道提供这样的东西的图书馆:)
    • 如果你想要xhtml 中的逻辑,你可以使用styleClass="#{bean.firstboolean ? 'class1' : 'class2'}"。
    • 或者你可以为它创建一个自定义的 EL 函数。见stackoverflow.com/questions/7079978/…
    • 谢谢,这或多或少是我想要的:)
    猜你喜欢
    • 2012-12-01
    • 2011-02-15
    • 2021-03-30
    • 2018-01-08
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    相关资源
    最近更新 更多