You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by soulspirit <no...@at.uboot.com> on 2007/08/16 16:42:50 UTC
ChoiceRenderer issue
Hi everyone,
I use this codesnippet for the <select wicket:id="gender"> tag in my
markupfile:
genderChoice = new DropDownChoice("gender", new PropertyModel(user,
"gender", Short.class), Arrays.asList(genders), new ChoiceRenderer("key",
"value"));
when I submit the form i get following error:
SelectOption[] genders = new SelectOption[]{new SelectOption("male", "1"),
new SelectOption("female", "2")};
wicket.util.convert.ConversionException: Cannot parse
'uboot.util.SelectOption@13577ca' using format java.text.DecimalFormat@674dc
at
wicket.util.convert.converters.AbstractConverter.newConversionException(AbstractConverter.java:72)
at
wicket.util.convert.converters.AbstractConverter.parse(AbstractConverter.java:52)
at
wicket.util.convert.converters.AbstractNumberConverter.parse(AbstractNumberConverter.java:69)
at
wicket.util.convert.converters.ShortConverter.convert(ShortConverter.java:44)
at wicket.util.convert.Converter.convert(Converter.java:207)
at
wicket.util.lang.PropertyResolver$MethodGetAndSet.setValue(PropertyResolver.java:828)
at
wicket.util.lang.PropertyResolver$ObjectAndGetSetter.setValue(PropertyResolver.java:447)
at
wicket.util.lang.PropertyResolver.setValue(PropertyResolver.java:136)
at
wicket.model.AbstractPropertyModel.onSetObject(AbstractPropertyModel.java:182)
at
wicket.model.AbstractDetachableModel.setObject(AbstractDetachableModel.java:131)
at wicket.Component.setModelObject(Component.java:2035)
.....
The SelectOption class looks like this:
public class SelectOption implements Serializable {
public SelectOption(String key, Short value) {
this.key = key;
this.value = value;
}
//getters and setters here.....
private String key;
private Short value;
}
I folowed this example:
http://cwiki.apache.org/WICKET/dropdownchoice-examples.html#DropDownChoiceExamples-Customizingthedisplayofchoices.
But things arnt working. Wicket doesnt pass the "value"-property to my
user-object, but the whole SelectOption-object. Ive written a workaround
(casting the passed Object to a SelectOption and reading the value with the
getter) but this behavior seems strange to me...
--
View this message in context: http://www.nabble.com/ChoiceRenderer-issue-tf4280071.html#a12182692
Sent from the Wicket - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org
Re: ChoiceRenderer issue
Posted by Igor Vaynberg <ig...@gmail.com>.
dropdown expects choice objects of type Short, you are giving it
SelectOption, it has trouble converting SelectOption to a Short.
three ways to do this. make your model expect a SelectOption object instead
of a short. ie add
User.setGender(SelectOption o) { gender=o.getGender(); }
two make your model convert on the fly
new ConvertingModel(new PropertyModel(user, "gender"));
three work with shorts and make your choice renderer translate the short
into the string. search the list for this, ive given this example before.
-igor
On 8/16/07, soulspirit <no...@at.uboot.com> wrote:
>
>
> Hi everyone,
>
> I use this codesnippet for the <select wicket:id="gender"> tag in my
> markupfile:
>
> genderChoice = new DropDownChoice("gender", new PropertyModel(user,
> "gender", Short.class), Arrays.asList(genders), new ChoiceRenderer("key",
> "value"));
>
> when I submit the form i get following error:
> SelectOption[] genders = new SelectOption[]{new SelectOption("male", "1"),
> new SelectOption("female", "2")};
> wicket.util.convert.ConversionException: Cannot parse
> 'uboot.util.SelectOption@13577ca' using format
> java.text.DecimalFormat@674dc
> at
> wicket.util.convert.converters.AbstractConverter.newConversionException(
> AbstractConverter.java:72)
> at
> wicket.util.convert.converters.AbstractConverter.parse(
> AbstractConverter.java:52)
> at
> wicket.util.convert.converters.AbstractNumberConverter.parse(
> AbstractNumberConverter.java:69)
> at
> wicket.util.convert.converters.ShortConverter.convert(ShortConverter.java
> :44)
> at wicket.util.convert.Converter.convert(Converter.java:207)
> at
> wicket.util.lang.PropertyResolver$MethodGetAndSet.setValue(
> PropertyResolver.java:828)
> at
> wicket.util.lang.PropertyResolver$ObjectAndGetSetter.setValue(
> PropertyResolver.java:447)
> at
> wicket.util.lang.PropertyResolver.setValue(PropertyResolver.java:136)
> at
> wicket.model.AbstractPropertyModel.onSetObject(AbstractPropertyModel.java
> :182)
> at
> wicket.model.AbstractDetachableModel.setObject(
> AbstractDetachableModel.java:131)
> at wicket.Component.setModelObject(Component.java:2035)
> .....
>
>
> The SelectOption class looks like this:
> public class SelectOption implements Serializable {
> public SelectOption(String key, Short value) {
> this.key = key;
> this.value = value;
> }
>
> //getters and setters here.....
>
> private String key;
> private Short value;
> }
>
>
> I folowed this example:
>
> http://cwiki.apache.org/WICKET/dropdownchoice-examples.html#DropDownChoiceExamples-Customizingthedisplayofchoices
> .
>
>
> But things arnt working. Wicket doesnt pass the "value"-property to my
> user-object, but the whole SelectOption-object. Ive written a workaround
> (casting the passed Object to a SelectOption and reading the value with
> the
> getter) but this behavior seems strange to me...
> --
> View this message in context:
> http://www.nabble.com/ChoiceRenderer-issue-tf4280071.html#a12182692
> Sent from the Wicket - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>