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