You are viewing a plain text version of this content. The canonical link for it is here.
Posted to adffaces-user@incubator.apache.org by Adam Winer <aw...@gmail.com> on 2006/08/24 22:51:50 UTC

Re: SimpleSelectOneRenderer should not evaluate select items if valuebinding leads to null

A JIRA issue would make sure this doesn't get lost...

-- Adam


On 8/24/06, Martin Koci <Ma...@aura.cz> wrote:
> 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
>
>