jsf页面评估

时间:2010-08-23 21:49:34

标签: jsf

有一个带有表单的jsf页面:

....
<h:form>
 <h:commandLink action="#{userBean.logout}" value="Logout" />
</h:form>
....
<ui:repeat value="#{categoryBean.allCategories}" var="c">
....

categoryBean.allCategories是对EJB的调用,它基于通过<f:param>获取的上一页的@ManagedProperty。因此,当用户点击Logout时,整个页面会进行评估,但没有参数,而且NullPointerException。有没有可能跳过评估?

1 个答案:

答案 0 :(得分:0)

使用rendered属性:

<h:panelGroup rendered="#{not empty param.name}">
    <ui:repeat value="#{categoryBean.allCategories}" var="c">
        ...
    </ui:repeat>
</h:panelGroup>

或者您也可以在getAllCategories()方法中执行nullcheck。

if (param != null) {
    // Return it.
}
return null;