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