我只想在某些条件下打印一组结果。在我的 bean 中,我有一个方法 dataIsOk() 检查条件并使用表单中的数据进行计算。计算成本很高(大约 5 秒)。方法 dataIsOk() 被调用了几次,然后总时间很长(大约 20 秒)。
我是 JSF 的新手,我不会因为总时间较短而做什么(例如 dataIsOk() 只调用一次)。
我的 xhtml:
<p:outputPanel rendered="#{pBean.dataIsOk() eq true}">
<ui:include src="result.xhtml"/>
</p:outputPanel>
我见过@PostContruct,但我觉得在我的情况下它不会好,因为我的方法需要来自接口的数据(然后在构建bean之前无法执行)。
我的功能:
public boolean dataIsOk() {
if (profilIsOk()) {
Date dateEffet = rechercheDate();
Parametres param = rechercheParam();
FacesContext fc = FacesContext.getCurrentInstance();
EBean eBean = (EBean) fc.getViewRoot().getViewMap().get("eBean");
if (eBean !=null) {
Calcul calcul = new Calcul();
List<Tarif> tarifs = new ArrayList<Tarif>();
tarifs = calcul.calculTarif(dateEffet, param, eBean.getType());
return true;
} else return false;
}