【问题标题】:jsf page evaluationjsf页面评估
【发布时间】:2010-08-24 05:53:35
【问题描述】:

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

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

categoryBean.allCategories 是对 EJB 的调用,它基于通过 @ManagedProperty 获取的上一页中的 &lt;f:param&gt;。因此,当用户单击Logout 时,整个页面都会评估,但没有参数并且有NullPointerException。是否有可能跳过评估?

【问题讨论】:

    标签: jsf


    【解决方案1】:

    利用rendered 属性:

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

    或者,您也可以在 getAllCategories() 方法中进行空检查。

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

    【讨论】:

      猜你喜欢
      • 2013-04-23
      • 1970-01-01
      • 2020-08-12
      • 2012-08-03
      • 1970-01-01
      • 2017-01-09
      • 1970-01-01
      • 2017-10-23
      • 1970-01-01
      相关资源
      最近更新 更多