s:select and non-primitive values 2007-01-29 - By Laurie Harper
Back 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@(protected) For additional commands, e-mail: user-help@(protected)
|
|