JSF生命周期的哪些阶段应该在页面刷新时被调用
页面刷新时JSF生命周期的所有阶段都应该调用什么,这完全取决于请求的类型(POST或get)和可用参数。例如,一个普通的GET请求只会启动第一个和最后一个阶段。默认情况下,“双重提交”(刷新表单提交)将经历所有阶段,但根据JSF生命周期的哪些阶段应该在页面刷新时被调用,jsf,Jsf,页面刷新时JSF生命周期的所有阶段都应该调用什么,这完全取决于请求的类型(POST或get)和可用参数。例如,一个普通的GET请求只会启动第一个和最后一个阶段。默认情况下,“双重提交”(刷新表单提交)将经历所有阶段,但根据UIInput和/或UICommand组件中是否存在immediate=“true”,可能会跳过某些阶段 您可以创建一个简单的PhaseListener,并使用它来了解哪些阶段被执行,哪些没有执行 package mypackage; import javax.faces.e
UIInput
和/或UICommand
组件中是否存在immediate=“true”
,可能会跳过某些阶段
您可以创建一个简单的PhaseListener
,并使用它来了解哪些阶段被执行,哪些没有执行
package mypackage;
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;
public class LifeCycleListener implements PhaseListener {
public PhaseId getPhaseId() {
return PhaseId.ANY_PHASE;
}
public void beforePhase(PhaseEvent event) {
System.out.println("START PHASE " + event.getPhaseId());
}
public void afterPhase(PhaseEvent event) {
System.out.println("END PHASE " + event.getPhaseId());
}
}
在faces config.xml
中按如下方式注册它以使其运行:
<lifecycle>
<phase-listener>mypackage.LifeCycleListener</phase-listener>
</lifecycle>
mypackage.LifeCycleListener
另见: