在处理由dataTable的标记“value”触发的方法时更新消息

时间:2010-11-03 12:17:18

标签: jsf page-lifecycle tomahawk

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

提前谢谢。

1 个答案:

答案 0 :(得分:1)

通常的做法是使用rendered属性。

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

empty为空或true时,bean.list EL关键字将评估null

也就是说,在getter中执行EJB逻辑是一个坏主意。 Getters仅用于返回数据,并且可以在bean的生命中多次调用。而是在bean的@PostConstruct方法中使用EJB。