import javax.faces.lifecycle.Lifecycle;
import javax.faces.lifecycle.LifecycleFactory;
...
LifecycleFactory factory = (LifecycleFactory)
FactoryFinder.getFactory(FactoryFinder.LIFECYCLE_FACTORY);
Lifecycle lifecycle = factory.getLifecycle(LifecycleFactory.DEFAULT_LIFECYCLE);
lifecycle.removePhaseListener(myPhaseListener);
lifecycle.addPhaseListener(new MyPhaseListener());
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
@ManagedBean
@ViewScoped
public class MyBean {
private List<MyData> cachedData;
public List<MyData> getCachedData() {
if (cachedData == null) {
cachedData = DataService.loadData();
}
return cachedData;
}
}
<h:form>
<h:inputText id="name" value="#{myBean.name}" />
<h:commandButton value="Submit" action="#{myBean.submit}">
<f:ajax render="results" />
</h:commandButton>
<h:panelGroup id="results">
</h:panelGroup>
</h:form>