I was using my own converter extending DefaultTypeConverter, but was under the impression that exceptions thrown inside the converter will be caught by the default exception handler.

Am 04.04.2014 08:58, schrieb Lukasz Lenart:
You mean in EnumTypeConverter? Or in DefaultTypeConverter?

2014-04-04 8:47 GMT+02:00 Fabian Richter <frich...@mtg.de>:
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 <frich...@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-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org


--
media transfer AG

Fabian Richter, M.Sc.
Softwareentwickler

Mail:    frich...@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


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


--
media transfer AG

Fabian Richter, M.Sc.
Softwareentwickler

Mail:    frich...@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

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to