【发布时间】:2012-05-04 17:29:33
【问题描述】:
我有f:param,如下所示...
<f:param name="NDCID" value="#{selectedMedicationInfoBean.NDCID}"></f:param>
<f:param name="insuranceID" value="#{selectedMedicationInfoBean.insurance.id}"></f:param>
在少数情况下
#{selectedMedicationInfoBean.insurance.id}
为空。我们能阻止它吗?我不能在 JSF 表达式中使用车削运算符。
<f:param name="insuranceID" value="#{selectedMedicationInfoBean.insurance.id=null?'':selectedMedicationInfoBean.insurance.id}">
还有其他方法吗?
功能要求:第1页有detail的链接。这将在 page2 上显示详细信息。作为参数需要传递大约 6 个参数。在这些参数的基础上,详细页面将生成信息。
问题在于这 6 个参数 2 可能为空,导致以下错误的原因出现在视图 page1。
java.lang.NullPointerException
com.sun.faces.renderkit.RenderKitUtils.getCommandLinkOnClickScript(RenderKitUtils.java:934)
com.sun.faces.renderkit.html_basic.CommandLinkRenderer.getOnClickScript(CommandLinkRenderer.java:295)
com.sun.faces.renderkit.html_basic.CommandLinkRenderer.renderAsActive(CommandLinkRenderer.java:357)
com.sun.faces.renderkit.html_basic.CommandLinkRenderer.encodeBegin(CommandLinkRenderer.java:165)
javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:788)
org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChild(RendererUtils.java:433)
org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChildren(RendererUtils.java:419)
org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChild(RendererUtils.java:440)
【问题讨论】:
-
功能需求究竟是什么?这样我们就可以更好地理解为什么发送一个空/null参数是一个问题。
-
@BalusC ,我已将我的显示名称设置为“Guruji”,这意味着“老师”,但我可以说你是这个 JSF 的大师。非常感谢您的快速回复。
-
哦,您使用的是旧的 JSF 1.2。在未来的问题中,请提及确切的 JSF impl/version。我会发布一个答案。