最佳答案
与使用 @PostConstruct注释相比,什么时候应该使用 f:viewAction或 preRenderView事件来初始化页面的数据?是基于后台 bean 的作用域类型使用其中一种的基本原理,例如。如果后台 bean 是 @RequestScoped,那么在呈现视图之前选择使用 f:viewAction或者 preRenderView而不是 @PostConstruct来初始化您的后台 bean 是否无关紧要,因为两者会导致同样的效果?
ViewAction 或 preRenderView
<f:metadata>
<f:viewAction action="#{myBean.initialize}" />
</f:metadata>
<f:metadata>
<f:event type="preRenderView" listener="#{myBean.initialize}"/>
</f:metadata>
或者
@ PostConstruction
public class MyBean
{
@PostConstruct
public void initialize()
{
}
}