Hi Prasanth, I searched and saw it is some different for ModelDriven [1].
Regards. [1] https://struts.apache.org/core-developers/type-conversion.html#applying-a-type-converter-to-a-bean-or-model (Applying a Type Converter to a bean or model) On 3/6/2019 7:36 PM, Prasanth wrote: > I have created the below in CompDeferralAction-conversion.properties (action > class is CompDeferralAction). The variable name is deferralCode. But still > struts is populating the value as Long rather > than Integer. Am I missing anything here? > This action is ModelDriven so the deferralCode variable is in a different > class. > > Looking at the documentation seems like it should be KeyProperty, so I named > it as such. > KeyProperty_deferralCode=java.lang.Long > Element_deferralCode=java.lang.Interger > > I have also tried the annotations > > @TypeConversion(rule=ConversionRule.MAP, key="java.lang.Long", > value="java.lang.Integer") > public void setDeferralCode(HashMap<Long, Integer> deferralCode) { > this.deferralCode = deferralCode; > } > > Thanks, > Prasanth > > On 2/16/19 3:20 AM, Yasser Zamani wrote: >> I think a file named yourActionClass-conversion.properties beside your >> action with following contents should help [1]: >> >> Key_xxx=java.lang.Long >> Element_xxx=java.lang.Double >> >> (where xxx is the field name of the collection property in your action or >> object) >> >> Regards. >> >> [1] >> https://struts.apache.org/core-developers/type-conversion.html#collection-and-map-support >> >>> -----Original Message----- >>> From: Prasanth <dbad...@pangburngroup.com> >>> Sent: Friday, February 15, 2019 9:08 PM >>> To: user@struts.apache.org >>> Subject: Re: Map backed form >>> >>> Does struts follow a specific logic as to what the data type of the object >>> would be >>> based on user input? Meaning when is it converted to a Double vs Integer vs >>> String? >>> >>> Thanks, >>> Prasanth >>> >>> On 2/15/19 7:45 AM, Lukasz Lenart wrote: >>>> pt., 15 lut 2019 o 00:17 Prasanth <dbad...@pangburngroup.com> napisał(a): >>>>> I have a map (Map<Long, Double>) but based on the data entered by the >>>>> user the value in the Map is Double or String. Example if the user enters >>>>> a >>> value of 10 then it is coming in as double but if the user enters 10.5 then >>> a string >>> is present in the value. Does Struts2 look at the data types of the key and >>> value of >>> the map and set the key and values in the map accordingly? >>>> Struts is not a problem here, generic types are erased at runtime, so >>>> basically this a Map<Object, Object> at the end >>>> https://docs.oracle.com/javase/tutorial/java/generics/erasure.html >>>> >>>>> If not, what is the best practice for the declaration of Map, is there a >>>>> way to >>> force Struts2 to only have Double objects as values? >>>> I would probably use a custom type instead of Double and implement >>>> converter for it, or even replace the Map with a List of custom >>>> objects. >>>> >>>> >>>> Regards >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org >> For additional commands, e-mail: user-h...@struts.apache.org >> > >