Yeah, I was having Converters for both types, AND DifferentComplexType
is an enum.
The problem was, in the converters convertFromString method the
enum.valueOf() should have thrown an IllegalArgumentException when
calling it with an emtpy String "" but instead, just the conversion
silently failed and the value didnt get set.
Not sure this is "as designed" thats up to you guys, but I solved it by
handling "" explicitly.
Thanks for your support!
Am 04.04.2014 07:16, schrieb Lukasz Lenart:
> Do you have converters for ComplexType and DifferentComplexType registered?
>
> 2014-04-03 11:19 GMT+02:00 Fabian Richter <frichter@mtg.de>:
>> Hey,
>>
>> not sure this is a Bug or a Feature, but I ran into the following troubles,
>> someone might be able to explain:
>>
>> class ComplexType {
>> private DifferentComplexType test;
>>
>> public void setTest(DifferentComplexType test){
>> this.test = test;
>> }
>> public DifferentComplexType getTest(){
>> return this.test;
>> }
>> }
>>
>> In an action class I have
>>
>> private ComplexType field;
>>
>> public ComplexType getField(){
>> return this.field;
>> }
>>
>> public void setField(ComplexType field){
>> this.field = field;
>> }
>>
>> Now in this Action, I am setting "test" with a <s:select list="..."
>> key="field.test" headerKey="" headerValue="Undefined" />
>>
>> But when I want to null it, by selecting the header entry "Undefined",
>> Struts is not calling getField().setTest() its not changing "test" in
>> "field" at all.
>>
>> When I add to my action
>>
>> public DifferentComplexType getTest(){
>> return this.field.getTest();
>> }
>>
>> public void setTest(DifferentComplexType test){
>> this.field.setTest(test);
>> }
>>
>> and change the <s:select> to use key="test" it works like a charm.
>>
>> Is that how its supposed to be? If so, why?
>>
>> Thank you for explaining!
>>
>> Best
>> Fabian
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
--
media transfer AG
Fabian Richter, M.Sc.
Softwareentwickler
Mail: frichter@mtg.de
Telefon: +49 6151 8193-24
Telefax: +49 6151 8193-43
Web: http://www.mtg.de
Firmensitz: Dolivostraße 11, 64293 Darmstadt
Registergericht: Amtsgericht Darmstadt, HRB 8901
Vorstand: Jürgen Ruf (Vors.), Tamer Kemeröz
Aufsichtsratsvorsitzender: Dr. Thomas Milde
|