Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 在处理由标记触发的方法时更新消息;“价值”;数据表的_Jsf_Page Lifecycle_Tomahawk - Fatal编程技术网

Jsf 在处理由标记触发的方法时更新消息;“价值”;数据表的

Jsf 在处理由标记触发的方法时更新消息;“价值”;数据表的,jsf,page-lifecycle,tomahawk,Jsf,Page Lifecycle,Tomahawk,我有一个带有战斧数据表的页面。在它的“value”标记上,我调用了一个从某个EJB获取列表的方法,如果列表为空,我必须在页面上显示一些消息。逻辑工作,它执行我创建的在屏幕上显示消息的方法,但它不会在页面上呈现消息。恐怕这与JSF的生命周期有关。在这种情况下我能做些什么 提前感谢。通常的方法是使用呈现的属性 <h:outputText value="List is empty" rendered="#{empty bean.list}" /> <t:dataTable value

我有一个带有战斧数据表的页面。在它的“value”标记上,我调用了一个从某个EJB获取列表的方法,如果列表为空,我必须在页面上显示一些消息。逻辑工作,它执行我创建的在屏幕上显示消息的方法,但它不会在页面上呈现消息。恐怕这与JSF的生命周期有关。在这种情况下我能做些什么


提前感谢。

通常的方法是使用
呈现的属性

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

...
empty
EL关键字将在
bean.list
为空或
null
时计算
true


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

嗨,问题是我在3页中使用同一个bean。这是流程中的第二个页面,我需要第一个页面的输入来调用ejb,这就是为什么我考虑在get方法上调用它。我想我会再创造一个豆子。。。。谢谢。如果列表依赖于提交的数据,那么您应该在提交方法(commandlink/commandbutton操作方法)中填充列表。