el表达式:空a或a.method(b)抛出a.method(b)

时间:2016-12-26 04:27:32

标签: el

<canvas id="canvas" width="400px" height="400px"></canvas>

上面的表达式抛出了流动的异常:

<h:outputText styleClass="fa fa-android" rendered="#{empty module.platform or module.platform.includePlatforms(Platform.PLATFORM_ANDROID)}"/>

org.apache.myfaces.view.facelets.el.ContextAwareELException: javax.el.ELException: java.lang.NullPointerException at org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpression.getValue(ContextAwareTagValueExpression.java:104) ~[myfaces-impl-2.2.9.jar!/:2.2.9] ... Caused by: java.lang.NullPointerException at com.bolan.fzsystem.core.model.Platform.includePlatforms(Platform.java:61) ~[fzSystem-model-5.0.jar:?] at sun.reflect.GeneratedMethodAccessor543.invoke(Unknown Source) ~[?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_45] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_45] at javax.el.ELUtil.invokeMethod(ELUtil.java:308) ~[jboss-el-api_3.0_spec-1.0.4.Final.jar!/:1.0.4.Final] at javax.el.BeanELResolver.invoke(BeanELResolver.java:537) ~[jboss-el-api_3.0_spec-1.0.4.Final.jar!/:1.0.4.Final] at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:256) ~[jboss-el-api_3.0_spec-1.0.4.Final.jar!/:1.0.4.Final] ... 测试了module.platform的可空性。所以我认为如果empty module.platform为null,则不会调用module.platform。那为什么npe被myfaces抛出? 我的myfaces版本是2.2.9。

我发现问题不在于表达。 module.platform.includePlatforms(Platform.PLATFORM_ANDROID)不为空。 module.platform为空。但是,它并不总是为空。它有时是空的。

Platform.PLATFORM_ANDROID

我按<p:importConstants type="com.bolan.fzsystem.core.model.Platform" var="Platform" /> 导入Platform.PLATFORM_ANDROID。

0 个答案:

没有答案