myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Madhav Bhargava" <Madhav_Bharg...@infosys.com>
Subject RE: how do you pass/set parameters upon ActionListener execution?-puzzled
Date Wed, 07 Mar 2007 07:11:53 GMT
Hi Simon,

The version of Myfaces that I am using is from a nightly build version
1.1.5.
Tomahawk version is 1.1.5 as well (some nightly build)

displayText is a String property and getter and setter have been
generated using Eclipse so I am sure that there is no problem with the
signature.

It should not be a problem with getter and setter as literal String
values are getting set properly in the backing bean.

Regards,
Madhav

> -----Original Message-----
> From: Simon Kitching [mailto:simon.kitching@rhe.co.nz]
> Sent: Wednesday, March 07, 2007 12:35 PM
> To: MyFaces Discussion
> Subject: Re: how do you pass/set parameters upon ActionListener
> execution?-puzzled
> 
> Sorry I didn't read the whole mail.
> 
> How exactly is "msg" defined?
> 
> I don't see here what version of Tomahawk you are working with. For
> version 1.1.3 (which is what I have at hand) the value is fetched just
> using a standard call to "getValue()", so there's nothing special
there.
> However afterwards it tries to do some type-conversion:
> 
>      Object v = getValue();
>      if (v != null &&
>          v instanceof String)
>      {
>          Class type = updateBinding.getType(context);
>           ....
>      }
>      updateBinding.setValue(context, v);
> 
> If expression breadCrumbNavigatorBean.displayText doesn't reference a
> String property then there might be a conversion problem. Note that
> exactly what defines a javabean "property" is slightly more complex
than
> just having a setter method. For example, the setter must not be
static,
> and there must not be a getter method with a conflicting signature.
You
> could check by using java.bean.Introspector on this class and verify
> that it does agree that there is indeed a writeable String property
> "displayText". Ok, it's not likely that this is wrong but
> t:updateActionListener is in wide use and there are no known problems
> with it so something odd is going on..
> 
> Cheers,
> 
> Simon
> 
> 
> Madhav Bhargava wrote:
> > As I mentioned in point number 2 it works. displayText property in
the
> > backing bean will get populated with "dummyValue"
> >
> > The immediate inference of this result was that there is something
wrong
> > with my EL expression. But then when I used <t:outputLabel> tag with
the
> > same EL expression it outputted the correct value.
> >
> > This means that there is nothing wrong with the EL expression. The
key
> > is properly defined in the Messages.properties file as well.
> >
> > ~madhav
> >
> >> -----Original Message-----
> >> From: Simon Kitching [mailto:simon.kitching@rhe.co.nz]
> >> Sent: Wednesday, March 07, 2007 12:20 PM
> >> To: MyFaces Discussion
> >> Subject: Re: how do you pass/set parameters upon ActionListener
> >> execution?- puzzled
> >>
> >
> >> What happens if you do this?
> >> <t:updateActionListener
> >>   property="#{breadCrumbNavigatorBean.displayText}"
> >>   value="dummyValue"/>
> >>
> >
> >> Madhav Bhargava wrote:
> >>> Hi Werner,
> >>>
> >>> I double checked the jsp and the backing bean but it just refuses
to
> >>> parse the EL expression.
> >>>
> >>> This is what I have done:
> >>>
> >>> *Jsp Code:*
> >>>
> >>> <t:commandLink value="Add Reminders" styleClass="linkClass"
> >>> action="#{reminderController.getExistingRemindersList}"
> >>>
> >>> actionListener="#{breadCrumbNavigatorBean.updateBreadCrumb}"
> >>> rendered="#{!physicianHomeController.showRemindersMoreLink}">
> >>>
> >>> <t:updateActionListener
> >>> property="#{breadCrumbNavigatorBean.displayText}"
> >>> value="#{msg['breadcrumb.label.reminders']}"/>
> >>>
> >>> </t:commandLink>
> >>>
> >>> In the* backing bean* I just defined a String property with the
name
> >>> displayText.
> >>>
> >>>
> >>> */Following is the observation:/*
> >>>
> >>> 1. The displayText in the backing bean is null. In other words the
> > EL
> >>> expression does not get parsed resulting in a null value.
> >>>
> >>> 2. If a literal string is given in place of an EL expression then
> > the
> >>> value is correctly populated in the backing bean.
> >>>
> >>> 3. Based on the result from point number 2 - I tried just
outputting
> > the
> >>> value of the EL expression using: <t:outputLabel
> >>> value="#{msg['breadcrumb.label.reminders']}"
> >>> styleClass="outputLabelText"/> The same expression is now parsed
> >>> properly and the value appears on the page. This means that there
is
> >>> nothing wrong with the EL expression.
> >>>
> >>> I am not sure what is going on? Why will <t:updateActionListener>
> > refuse
> >>> to parse an EL expression that references a message bundle?
> >>>
> >>> Regards,
> >>>
> >>> Madhav
> >>>
> >>>>  -----Original Message-----
> >>>>  From: news [mailto:news@sea.gmane.org] On Behalf Of Werner Punz
> >>>>  Sent: Tuesday, March 06, 2007 4:10 PM
> >>>>  To: users@myfaces.apache.org
> >>>>  Subject: Re: how do you pass/set parameters upon ActionListener
> >> execution?
> >>>>  I had similar usescases (although not using
internationalisation)
> >>>>  in my current up a dozend times, the mechanism itself works,
> >>>>  I can only guess here,
> >>>>  first of all which myfaces version do you use and which tomahawk
> >> version.
> >>>>  I can recommend to go to the latest 1.1.5 stable and use the
> > tomahawk
> >>>>  and sandbox nightlies.
> >>>>  Secondly check for typos nav.msg.remiders seems like one
> >>>>  there is an "n" missing in reminders typowise, which could
> >>>>  be the cause for an empty string issued.
> >>>>  Werner
> >>>>  Madhav Bhargava schrieb:
> >>>>  > Hi Werner,
> >>>>  >
> >>>>  > Yes, you are right. But I still cannot get the values in my
> > backing
> >>>>  bean.
> >>>>  >
> >>>>  > *Jsp code:*
> >>>>  >
> >>>>  > <t:commandLink value="Add Reminders" styleClass="linkClass"
> >>>>  > action="#{reminderController.showAddReminderScreen}"
> >>>>  >
> >>>>  > actionListener="#{breadCrumbNavigatorBean.updateBreadCrumb}"
> >>>>  > rendered="#{!physicianHomeController.showRemindersMoreLink}">
> >>>>  >
> >>>>  > <t:updateActionListener
> >>>>  > property="#{breadCrumbNavigatorBean.participant.displayText}"
> >>>>  > value="#{msg['nav.msg.remiders']}"/>
> >>>>  >
> >>>>  > </t:commandLink>
> >
> > **************** CAUTION - Disclaimer *****************
> > This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION
intended
> solely for the use of the addressee(s). If you are not the intended
> recipient, please notify the sender by e-mail and delete the original
> message. Further, you are not to copy, disclose, or distribute this
e-mail
> or its contents to any other person and any such actions are unlawful.
> This e-mail may contain viruses. Infosys has taken every reasonable
> precaution to minimize this risk, but is not liable for any damage you
may
> sustain as a result of any virus in this e-mail. You should carry out
your
> own virus checks before opening the e-mail or attachment. Infosys
reserves
> the right to monitor and review the content of all messages sent to or
> from this e-mail address. Messages sent to or from this e-mail address
may
> be stored on the Infosys e-mail system.
> > ***INFOSYS******** End of Disclaimer ********INFOSYS***


Mime
View raw message