有条理地在Facelets中添加HTML元素属性

时间:2015-02-05 12:36:27

标签: jsf facelets

使用Facelets并编写一些XHTML,我无法弄清楚如何创建一个元素然后再添加属性,就像在xslt中一样,如果你想有条件地添加一个属性:

<xsl:element name="div">
    <xsl:attribute name="style">color:blue;</xsl:attribute>
</xsl:element>

Google提供了一些类似于

的JSP taglib示例
<jsp:element name="div">
     <jsp:attribute name=".">...</jsp:attribute>
</jsp:element>

在Facelets中不提供该库作为标准,并且搜索包含的库的文档并未显示任何明显的内容。

1 个答案:

答案 0 :(得分:3)

在真正的JSF组件上使用<c:if><f:attribute>

<h:panelGroup layout="block">
    <c:if test="#{bean.condition}"><f:attribute name="style" value="color:blue;"/></c:if>
</h:panelGroup>

顺便说一句,您应该在CSS样式表文件中使用完全可靠的CSS类,而不是在标记的所有位置使用紧密耦合的style属性。

您可以有条件地声明样式类,如下所示:

<h:panelGroup layout="block" styleClass="#{bean.condition ? 'foo' : 'bar'}" />