在 Facelets 中有条件地添加 HTML 元素属性
Conditionally add HTML element attribute in 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 中的标准提供,搜索包含的库的文档也没有显示任何明显的内容。
在真正的 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'}" />
使用 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 中的标准提供,搜索包含的库的文档也没有显示任何明显的内容。
在真正的 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'}" />