struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Yasser Zamani <yasserzam...@apache.org>
Subject Re: Invalid Field Value when using Map
Date Fri, 21 Jun 2019 06:23:38 GMT
Oh interesting!

Have you seen [1]? e.g. conversion error interceptor should be present
in your interceptor stack. To debug, for example put a number field
which is not a map and see if conversion error appears - I think you
should also have fieldErrors tag in your jsp.

It seems your action also should be ValidationAware. Put a break-point
at [2] and see if your code reaches there and what happens next.

Regards.

[1]
https://struts.apache.org/core-developers/type-conversion.html#collection-and-map-support
[2]
https://github.com/apache/struts/blob/651eac2c57396aa11ee65002006b3123dd69cbb4/core/src/main/java/com/opensymphony/xwork2/interceptor/ConversionErrorInterceptor.java#L116

On 6/19/2019 10:35 PM, Prasanth Pasala wrote:
> Hi Yasser,
> 
> I think at run time you can add any type of objects you want to the map.
> The checks are only at compile time on the data types of objects added
> to Maps.
> 
> Thanks,
> Prasanth
> 
> On 6/19/19 1:29 AM, Yasser Zamani wrote:
>> Hi Prasanth,
>>
>> I'm surprised how you get non digit characters in your map while both
>> key and value are not String!
>>
>> Regards.
>>
>>> -----Original Message-----
>>> From: Prasanth <dbadmin@pangburngroup.com>
>>> Sent: Monday, June 17, 2019 8:52 PM
>>> To: Struts Users Mailing List <user@struts.apache.org>
>>> Subject: Invalid Field Value when using Map
>>>
>>> Hi,
>>>
>>> I have a form that uses maps to store data as shown below. When the
>>> user enters
>>> valid numbers it works as expected, but when user enters non digit
>>> characters in
>>> the text field a String object is saved in the map rather than
>>> showing a "Invalid
>>> field value for field <field name>" message which is done for basic
>>> data types like
>>> int/long/double. Is this something that struts has not implemented
>>> for maps yet,
>>> as the annotations provide the expected data type?
>>>
>>>      @Element(value=java.lang.Double.class)
>>>      private HashMap<Long, Double> deferralAmountValue = new
>>> HashMap<Long,Double>();
>>>      @Element(value=java.lang.Double.class)
>>>      private HashMap<Long, Double> deferralPercentValue = new
>>> HashMap<Long,Double>();
>>>
>>>
>>> Thanks,
>>> Prasanth
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org
>>
> 
> 
Mime
View raw message