我想在托管bean中有一个布尔semaphore
,表示使用它的JSF
页面是否已完成渲染。默认情况下,该值应该为false,并且一旦HTML的最后一位被渲染(或者在那里),该值应该设置为true,并且在bean的生命周期中,如果它返回false,则永远不会再次设置。 p>
我想有一种方法可以做到,如果我有一个表单将一个隐藏的输入绑定到bean方法,该方法总是将信号量的值设置为true。但是,有没有办法在没有表格的情况下实现这一目标?
答案 0 :(得分:3)
在每个视图的基础上,您可以使用<f:view afterPhase>
。
<f:view afterPhase="#{bean.afterPhase}">
private boolean renderedOnce;
public void afterPhase(PhaseEvent event) {
if (event.getPhaseId() == PhaseId.RENDER_RESPONSE) {
renderedOnce = true;
}
}