struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Prasanth <dbad...@pangburngroup.com>
Subject Re: Map backed form
Date Thu, 07 Mar 2019 16:28:23 GMT
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 <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
>>>
>>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message