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