0

我有一个带有 Tomahawk 数据表的页面。在它的“值”标签上,我调用了一个从某个 EJB 获取列表的方法,如果它为空,我必须在页面上显示一些消息。逻辑有效,它执行我创建的在屏幕上显示消息的方法,但它不会在页面上呈现消息。恐怕这与 JSF 的生命周期有关。在这种情况下我可以做任何解决方法吗?

先感谢您。

4

1 回答 1

1

通常的方法是利用rendered属性。

<h:outputText value="List is empty" rendered="#{empty bean.list}" />
<t:dataTable value="#{bean.list}" rendered="#{not empty bean.list}">
    ...
</t:dataTable>

emptyEL 关键字将评估何时truebean.list空或null

也就是说,在 getter 中执行 EJB 逻辑是一个非常糟糕的主意。Getter 仅用于返回数据,并且可以在 bean 的生命周期中多次调用。@PostConstruct而是在 bean 的方法中做 EJB 的东西。

于 2010-11-03T12:42:55.823 回答