Hi, I think putting breakpoints at [1] and [2] and seeing if you reach there and what happens next can help proceeding this issue.
Thanks in advance! Regards. [1] https://github.com/apache/struts/blob/651eac2c57396aa11ee65002006b3123dd69cbb4/core/src/main/java/com/opensymphony/xwork2/conversion/impl/DefaultObjectTypeDeterminer.java#L114 [2] https://github.com/apache/struts/blob/651eac2c57396aa11ee65002006b3123dd69cbb4/core/src/main/java/com/opensymphony/xwork2/interceptor/ConversionErrorInterceptor.java#L118 >-----Original Message----- >From: Prasanth <dbad...@pangburngroup.com> >Sent: Friday, June 21, 2019 6:27 PM >To: user@struts.apache.org >Subject: Re: Invalid Field Value when using Map > >Hi Yasser, > >The conversion error occurs when the field is not a map. I have a form with >int/long fields, if the user enters non numeric value the form display error. > >The actions are validation aware and the control does come to validation >method. It is in the validation method that I usually get exceptions as the >code is >expecting to have a Double but the type of the object in the map is a String. I >have tried to check in the validate method if the object is of type Double and >if it >is not a Double add a field error. When I do that OGNL seems to have an issue >when displaying the input form with the values in the map. Seems like OGNL is >now expecting a Double value and is not able to handle a String object being >present in the map. The JSP stops at the field which has String value. > >So even if I add additional validations to make sure all values in the map are >Doubles it would still cause a problem as Struts would not be able to display >the >input form. > >Thanks, >Prasanth > >On 6/21/19 1:23 AM, Yasser Zamani wrote: >> 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#collect >> ion-and-map-support >> [2] >> https://github.com/apache/struts/blob/651eac2c57396aa11ee65002006b3123 >> >dd69cbb4/core/src/main/java/com/opensymphony/xwork2/interceptor/Conver >> sionErrorInterceptor.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 <dbad...@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-unsubscr...@struts.apache.org >>>> For additional commands, e-mail: user-h...@struts.apache.org >>>> >>> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org >> For additional commands, e-mail: user-h...@struts.apache.org >>