struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Laurie Harper <lau...@holoweb.net>
Subject [s2] s:select and non-primitive values
Date Tue, 30 Jan 2007 00:02:59 GMT
I suspect this may be related to the recently mentioned bug/limitation 
in s:select, but I haven't been able to figure out how to work around it 
if so. I'm trying to create a select input for a model property which 
has a POJO type (actually, a persistent entity). Here's a rough outline:

public class Region {
   public Integer getId() {...}
   public String getName() {...}
}

public class Player {
   public Region getRegion() {...}
   public void setRegion(Region region) {...}
}

public class SomeAction {
   public Object getModel() {/*returns Player*/}
   public List<Region> getRegions() {...}
}

<s:select name="region" list="regions"
           listKey="id" listValue="name"
           headerKey="-1" headerValue=""
           label="Region:" labelposition="left"/>

This works well except for selection of the current value. The select 
input always shows with the default/empty option selected. Making 
Region.getId() return 'int' instead of Integer doesn't seem to help, and 
I'm not able to find any other combination of changes that does work.

I should point out that I also have a converter registered globally for 
the Region type. It only ever gets called on form submission, though, to 
convert the selected value from String id to a Region instance. It's 
never called to convert from Region to String.

Am I doing something fundamentally wrong? The selected value *is* set on 
the Player model instance, so everything seems to be working fine except 
for the display of the current property value in the form.

L.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Mime
View raw message