是的,使用rendered
属性。
<h:form rendered="#{some boolean condition}">
您通常将其与模型绑定,而不是让模型抓取组件并对其进行操作。
例如
<h:form rendered="#{bean.booleanValue}" />
<h:form rendered="#{bean.intValue gt 10}" />
<h:form rendered="#{bean.objectValue eq null}" />
<h:form rendered="#{bean.stringValue ne 'someValue'}" />
<h:form rendered="#{not empty bean.collectionValue}" />
<h:form rendered="#{not bean.booleanValue and bean.intValue ne 0}" />
<h:form rendered="#{bean.enumValue eq 'ONE' or bean.enumValue eq 'TWO'}" />
请注意基于关键字的 EL 运算符的重要性,例如gt
,和代替,和作为尖括号并且是 XML 中的保留字符。另请参阅此相关问答:解析 XHTML 时出错:元素的内容必须由格式正确的字符数据或标记组成。ge
le
lt
>
>=
<=
<
<
>
至于您的具体用例,我们假设链接正在传递如下参数:
<a href="page.xhtml?form=1">link</a>
然后,您可以显示如下表格:
<h:form rendered="#{param.form eq '1'}">
(这#{param}
是一个隐含的 EL 对象,引用Map
代表请求参数的 a)
也可以看看: