>> EL expressions use the same syntax for variable references that
>> JavaScript
>> expressions do.  Thus, "#{ foo.bar}" and "#{foo[bar]}" and
>> "#{foo['bar']}"
>> are all equivalent.

If they are equivalent, then why didn't his original syntax work? I've seen the pattern you suggested used in the Tomahawk examples and elsewhere, but I never knew why it was necessary.

Regards.

Jeff Bischoff
Kenneth L Kurz & Associates, Inc.

Mick Knutson wrote:
<h:outputText value="#{messages['label.firstName']}"/>

This worked great, and I don't have to change all my Resource Bundles now.

Thank you so much!!!



On 10/31/06, Craig McClanahan <[EMAIL PROTECTED]> wrote:



On 10/31/06, Mick Knutson <[EMAIL PROTECTED]> wrote:
>
> I solved the issue, but am not happy with it.
> It seems that using a dot notation in the Resource Bundle is not
> allowed.


Hold up a sec on the changes!

EL expressions use the same syntax for variable references that JavaScript expressions do. Thus, "#{ foo.bar}" and "#{foo[bar]}" and "#{foo['bar']}"
are all equivalent.

This gives me the error:
> <h:outputText value="#{messages.label.firstName}" />:


Try this instead:

    <h:outputText value="#{messages['label.firstName']}"/>

Craig

This does not:
> <h:outputText value="#{messages.label_firstName}" />:
>
> But I had to change my messages.properties declaration from:
> label.firstName=First Name
>
> to:
>
> label_firstName=First Name
>
>
>
>
>
>
> On 10/31/06, Mick Knutson < [EMAIL PROTECTED]> wrote:
> >
> > What is the UserBackingBeanBeanInfo ???
> >
> > All I have is a simple UserBackingBeanBean with a set/get for public
> > User
> >
> >
> >
> >
> >
> > On 10/31/06, Simon Kitching <[EMAIL PROTECTED]> wrote:
> > >
> > > Well,everything does seem to be right. However the original
> > > exception
> > > does say:
> > >
> > > javax.faces.el.PropertyNotFoundException: Bean: java.lang.String ,
> > > property: firstName
> > >         at
> > > org.apache.myfaces.el.PropertyResolverImpl.getPropertyDescriptor (
> > > PropertyResolverImpl.java:483)
> > >
> > > which seems to imply that getUser has returned a String object.
> > >
> > > The PropertyResolverImpl code is:
> > >     public static PropertyDescriptor getPropertyDescriptor(
> > >         BeanInfo beanInfo, String propertyName)
> > >     {
> > >         PropertyDescriptor[] propDescriptors =
> > >             beanInfo.getPropertyDescriptors();
> > >
> > >         if (propDescriptors != null)
> > >         {
> > >             // TODO: cache this in classLoader safe way
> > >             for (int i = 0, len = propDescriptors.length; i < len;
> > > i++)
> > >             {
> > >                 if
> > > (propDescriptors[i].getName().equals(propertyName))
> > >                     return propDescriptors[i];
> > >             }
> > >         }
> > >
> > >         throw new PropertyNotFoundException("Bean: "
> > >             + beanInfo.getBeanDescriptor().getBeanClass().getName()
> > >             + ", property: " + propertyName);
> > >     }
> > >
> > >
> > > You don't happen to have a UserBackingBeanBeanInfo class around do
> > > you?
> > >
> > > As a wild guess, is the User class public? Maybe if it isn't, then
> > > something in the java introspection or JSF el code is calling
> > > toString
> > > on it to convert it to something that is accessable..
> > >
> > > I can't think what else might be causing your issue..
> > >
> > > Cheers,
> > >
> > > Simon
> > >
> >
> >
> >
> > --
> >
> > Thanks
> >
> > DJ MICK
> > http://www.djmick.com
> > http://www.myspace.com/mickknutson
> >
>
>
>
> --
>
> Thanks
>
> DJ MICK
> http://www.djmick.com
> http://www.myspace.com/mickknutson







Reply via email to