2010-08-23 48 views
0

有一个形式的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。有没有可能如何跳过评估?

回答

0

利用rendered属性:

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

或者你也可以只是做一个nullcheck在getAllCategories()方法。

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