Yes, thanks. I realized that I needed a Platform TypeConverter/Factory this
morning while lying in bed; it was yet another one of those forehead slapping
"Duh! What was I thinking of?" moments.
Freddy Daoud wrote:
> Hi Rusty,
>
>> My problem is that when Stripes is calling the FacilityAdminDto's
>> setPlatforms, the Platform object it has created has its name set to the
>> stringified id that's in the jsp, the value= part of the checkbox. As
>> far as I can tell it's because it's calling a Platform constructor that
>> takes a string arg (it has several constructors)
>>
>> public Platform(final String _name) {
>> this(_name, 0);
>>
>> this.log.debug("creating with name: {}", _name);
>> }
>>
>> public Platform(final String _name, final int _ordinal) {
>> this.name = _name;
>> this.ordinal = Short.valueOf((short) _ordinal);
>> }
>>
>> In my logs I can see the debug log statement; I never call that
>> constructor. In my logs the toString for FacilityAdminDto also shows
>> that the Platform Set has Platforms with their names set to the id string
>> that was in the jsp.
>>
>> If I comment out that constructor (and fix my test code to use the one
>> that specifies an ordinal), then it still tries to call it but gets an
>> exception
>>
>> [rusty-sandbox/4.338085272165943020].<stdout>: 2009-11-29 03:44:35.940
>> UTC, WARN: [Runtime Network Thread]
>> net.sourceforge.stripes.util.Log.warn.94: Looks like type converter null
>> threw an exception.
>> java.lang.NoSuchMethodException:
>>
>> I'm lost and confused.
>
> I think the problem is that you do not have a type converter for
> Platform.
> When you map checkboxes to a Collection<T>, Stripes tries to add the
> values
> to the collection, converting each value to T.
>
> Since there is no TC for Platform, the last resort for Stripes is to try
> a (String) constructor, which it found and called (much to your
> surprise;)
> and it throws an exception if there is no such constructor (the
> exception
> you received when you removed the String constructor).
>
> A simple TC that converts the String id to a Platform will solve the
> problem, or you can use indexed properties with a List<Platform>.
>
> Hope that helps.
>
> Cheers,
> Freddy
> http://www.stripesbook.com
>
> ------------------------------------------------------------------------------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
> trial. Simplify your report design, integration and deployment - and focus on
> what you do best, core application coding. Discover what's new with
> Crystal Reports now. http://p.sf.net/sfu/bobj-july
> _______________________________________________
> Stripes-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/stripes-users
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Stripes-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-users