在JSF中避免el中的空点异常

在JSF中避免el中的空点异常,jsf,el,Jsf,El,我正在用JPA(EclipseLink 2.0)和Primefaces开发一个JSF应用程序。 我想知道,当el调用null对象的属性时,是否有任何方法可以避免null点异常。我已经描述了情况。 我有比尔课。可能没有或多个BillItem对象具有Bill对象。每个BillItem对象都有Make、Country、Manufacturer等对象。我在一个JSF文件中显示账单的几个属性,如下所示 "#{billControlled.bill.billItem.modal.name}" 但是,如果未

我正在用JPA(EclipseLink 2.0)和Primefaces开发一个JSF应用程序。 我想知道,当el调用null对象的属性时,是否有任何方法可以避免null点异常。我已经描述了情况。 我有比尔课。可能没有或多个BillItem对象具有Bill对象。每个BillItem对象都有Make、Country、Manufacturer等对象。我在一个JSF文件中显示账单的几个属性,如下所示

"#{billControlled.bill.billItem.modal.name}"
但是,如果未选择票据,或者所选票据没有票据项目,则el中访问的属性为空。我可以通过为每个账单创建新对象来避免这种情况,例如,为新账单项目创建新make,等等,或者在控制器中为所有属性创建新属性。但这是一个很长的路,感觉像是初步的


在JSF的el中有没有避免这种空点异常的好方法?

我找到了解决方案。在每次el之前,我可以检查null



解决方案正在检查null(您也可以检查为空)并与render属性一起使用

Empty可以很好地处理集合(检查Empty和null),也可以处理null

例如:

<h:outputText rendered="#{not empty myBean.myData}"  value="..." /> 

我这样做了,但仍然得到了NPE。请说得更具体些。
<h:outputText rendered="#{userHandler.user.phoneNumber ne null}"  value="#{userHandler.user.phoneNumber}" /> 
<h:outputText rendered="#{not empty myBean.myData}"  value="..." />