【发布时间】:2013-04-27 23:05:12
【问题描述】:
如果列表不是 null 并且它有 size() > 0,我如何显示 JSF 组件?
【问题讨论】:
-
stackoverflow.com/questions/1985718/… 它对您需要的一切以及更多内容都有清晰的解释。
标签: jsf if-statement el
如果列表不是 null 并且它有 size() > 0,我如何显示 JSF 组件?
【问题讨论】:
标签: jsf if-statement el
使用 rendered 属性。大多数组件都有这个属性。这个属性的主要目的是有条件地渲染组件。
<h:dataTable value="#{bean.list}" rendered="{bean.list !=null && bean.list.size()>0}" >
在上面这段jsf代码中,只有当list不为null且list的大小大于0时才会渲染datatable
【讨论】:
&amp;&amp; 可以很容易地被更易读的and 取代。更重要的是,整个双重检查可以很容易地被单个运算符替换:empty。
EL 提供了empty 运算符,用于检查对象的空性和空性。
因此,应该这样做:
<h:dataTable value="#{bean.list}" var="item" rendered="#{not empty bean.list}">
不需要像其他答案所建议的那样对null 和size() 进行笨拙的双重检查。
【讨论】:
Empty 运算符。 +! :)
<h:outputText value="No Data to Display!" rendered="#{empty list1.List2}" />
<a href="#">
<h:outputText value="Data is present" rendered="#{not empty list1.List2}" /></a>
或者
<h:outputText value="#{not empty list1.List2 ? 'Data is Present' : 'No Data to Display'}" style="color:blue"/>
【讨论】: