Hello,

I'm  using selectOneChoice with attribute disabled="true" so output is
not HTML select  but normal span .
 
But if I have complex valueBinding such as
value="#{s012modelId.otherModel.formObject.objectXY.property}" and
something in expression is null (formObject in my case, because
selectOne gets rendered in initial form state - no objects are loaded)
i've got exception: 
javax.faces.el.PropertyNotFoundException: Base is null: .formObject
        at
org.apache.myfaces.el.ValueBindingImpl.resolveToBaseAndProperty(ValueBindingImpl.java:474)
        at
org.apache.myfaces.el.ValueBindingImpl.getType(ValueBindingImpl.java:172)
        at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.ValueRenderer.getDefaultConverter(ValueRenderer.java:72)
        at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.SimpleSelectOneRenderer.renderNonElementContent(SimpleSelectOneRenderer.java:306)
        at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.FormElementRenderer.encodeAllAsNonElement(FormElementRenderer.java:127)
        at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.FormElementRenderer.encodeAll(FormElementRenderer.java:60)
        at
org.apache.myfaces.trinidadinternal.renderkit.core.CoreRenderer.delegateRenderer(CoreRenderer.java:290)
        at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.InputLabelAndMessageRenderer.encodeAll(InputLabelAndMessageRenderer.java:106)
        at
org.apache.myfaces.trinidadinternal.renderkit.core.CoreRenderer.encodeEnd(CoreRenderer.java:178)

This is because renderer wants to get default converter but value
expression leads to null so no type is available.

Adding this three lines (as first lines ) in
SimpleSelectOneRenderer.renderNonElementContent solved my problem:

  Object value = getValue(bean);
  if (value == null)
                  return;


Thanks

Martin

Reply via email to