struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Yasser Zamani <yasserzam...@apache.org>
Subject Re: Map backed form
Date Thu, 07 Mar 2019 09:57:26 GMT
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 <dbadmin@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 <dbadmin@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-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org
>>
> 
> 
Mime
View raw message