Thank you Yasser. Changed the name of the properties file to use the model class name, it is in same package as the action so no change in location. But no success.
After reading the link you sent, the text in the properties file should be Key_xxx & Element_xxx as you said before and should not be KeyProperty (this is for lists to identify the id inside the element itself). I have now tried the @Element on the variable rather than @TypeConversion which has to be used on setXXX method. This is working now as expected. Not sure why properties file or @TypeConversion did not work. https://struts.apache.org/core-developers/element-annotation.html Thanks for all your help. Thanks, Prasanth On 3/7/19 3:57 AM, Yasser Zamani wrote: > 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 >>> >> > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > For additional commands, e-mail: user-h...@struts.apache.org >