有一个带有表单的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
。有没有可能跳过评估?
答案 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;