You need to determine why contact.contactLead.income is being evaluated
as $123.  This is forcing the search for setIncome(String).  Is the user
entering this value?  If so, you need to strip it of the "String" so it can
be considered a BigDecimal.

On Sat, Dec 11, 2010 at 6:51 PM, Burton Rhodes <burtonrho...@gmail.com>wrote:

> I know. I don't have a setIncome(String) method. But I do have
> setIncome(BigDecimal) method , hence the type conversion. Normally the
> class MyCurrencyCoverter will covert the String to BigDecimal, but
> it's never called. I am wondering what I am doing wrong that the
> conversion class is not called.
>
> On Saturday, December 11, 2010,  <stanl...@gmail.com> wrote:
> > Look at the bottom of your message and also the top.
> > 'contact.contactLead.income' evaluated
> > to '$123' and you do not have a method
> > com.afs.entity.ContactLead.setIncome([Ljava.lang.String;)]
> >
> > Scott
> >
> > On Fri, Dec 10, 2010 at 2:53 PM, Burton Rhodes <burtonrho...@gmail.com
> >wrote:
> >
> >> I am having issues trying to get a Type Converter to run when
> >> converting a field that is a "sub-object" of the main model.  For
> >> example, I have a Contact class that contains a ContactLead class.  I
> >> have an Action class that saves a new Contact and ContactLead at the
> >> same time.  Originally, I set up my
> >> ContactCreateAction-conversion.properties file to convert the
> >> "contact.contactLead.income"  field (three levels deep).  However,
> >> MyCurrencyConverter class never gets called.  I then changed my Action
> >> and Jsp pages to have seperate Contact and ContactLead objects and
> >> changed the conversion.properties file to convert
> >> "contactLead.income".  In this case, MyCurrencyConverter is called and
> >> everything works fine.
> >>
> >> Although everything is fine, shouldn't the conversion be recursive?
> >> Is this supposed to work, and I'm doing something wrong?  I have tried
> >> it both ways several times to make sure I didn't just mess something
> >> up, but each time I'm getting the same result.  Any comments welcome.
> >>
> >> Below are code snippets only.
> >>
> >> ***  DOES NOT WORK ***
> >> ContactCreateAction-conversion.properties:
> >> contact.contactLead.income=com.afs.web.converter.MyCurrencyConverter
> >>
> >> Jsp File:
> >> <s:textfield name="contact.contactLead.income"
> >> value="%{getText('format.money',{contact.contactLead.income != null ?
> >> contact.contactLead.income :''})}"  />
> >>
> >> ***  DOES WORK ***
> >> ContactCreateAction-conversion.properties:
> >> contactLead.income=com.afs.web.converter.MyCurrencyConverter
> >>
> >> Jsp File:
> >> <s:textfield name="contactLead.income"
> >> value="%{getText('format.money',{contactLead.income != null ?
> >> contactLead.income :''})}"  />
> >>
> >> **** The Contact Class ****
> >> // Most code ommitted
> >> public class Contact implements Serializable {
> >>
> >>        @Id
> >>        @GeneratedValue
> >>        @Column(name = "ContactId")
> >>        private Integer contactId;
> >>
> >>        @OneToOne(cascade = { CascadeType.ALL }, fetch=FetchType.LAZY)
> >>        @JoinColumn(name="ContactLeadId")
> >>        private ContactLead contactLead;
> >>
> >>            .......  More veriables and getters/setters below
> >> }
> >>
> >> *** THE ERROR ***
> >> Dec 10, 14:41:49 (CommonsLogger.java:56)
> >> WARN : The first TextProvider in the ValueStack
> >> (com.afs.web.action.contact.ContactCreateAction) could not locate the
> >> message resource with key 'contact.contactLead.income'
> >> Dec 10, 14:41:49 (CommonsLogger.java:56)
> >> WARN : The default value expression 'contact.contactLead.income' was
> >> evaluated and did not match a property.  The literal value
> >> 'contact.contactLead.income' will be used.
> >> Dec 10, 14:41:49 (CommonsLogger.java:56)
> >> WARN : The first TextProvider in the ValueStack
> >> (com.afs.web.action.contact.ContactCreateAction) could not locate the
> >> message resource with key 'contact.contactLead.nextStepDate'
> >> Dec 10, 14:41:50 (CommonsLogger.java:56)
> >> WARN : The default value expression 'contact.contactLead.nextStepDate'
> >> was evaluated and did not match a property.  The literal value
> >> 'contact.contactLead.nextStepDate' will be used.
> >> Dec 10, 14:41:55 (CommonsLogger.java:60)
> >> WARN : Error setting expression 'contact.contactLead.income' with
> >> value '[Ljava.lang.String;@1fbc2c7'
> >> ognl.MethodFailedException: Method "setIncome" failed for object
> >> com.afs.entity.contactl...@16e1c2c [java.lang.NoSuchMethodException:
> >> com.afs.entity.ContactLead.setIncome([Ljava.lang.String;)]
> >>        at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1285)
> >>        at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:1474)
> >>        at
> >>
> ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:85)
> >>        at
> >> ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:162)
> >> > ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
> >> For additional commands, e-mail: user-h...@struts.apache.org
> >>
> >>
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
> For additional commands, e-mail: user-h...@struts.apache.org
>
>

Reply via email to