使用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中不提供该库作为标准,并且搜索包含的库的文档并未显示任何明显的内容。
答案 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'}" />