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

Reply via email to