I don't see a reason why this couldn't be fixed.

On 11/29/2012 8:33 AM, Weinan Li wrote:
> Hi Bill,
>
> Do you think we could support '-' for map key?
>
> --
> Weinan Li
>
>
> On Tuesday, November 27, 2012 at 12:45 AM, John Reiter wrote:
>
>> Hello,
>>
>> I'm having an issue with RESTEasy 2.3.4 with using @Form/@FormParam
>> annotations to set values of a Map that uses UUIDs for its keys.  My
>> classes basically look like this:
>>
>>     @Controller
>>     @Path( "/test" )
>>     public class MyController
>>     {
>>         @Consumes( MediaType.APPLICATION_FORM_URLENCODED )
>>         @POST
>>         public ModelAndView setAssignments( @Form final MyForm myForm )
>>                 throws URISyntaxException
>>         { ... }
>>     }
>>
>>     public class MyForm
>>     {
>>         @Form( prefix = "myMap" )
>>         private Map<String, Foo> myMap = Maps.newHashMap();
>>     }
>>
>>     public class Foo
>>     {
>>         @FormParam( "bar" )
>>         public void setBar( final String bar )
>>        { ... }
>>     }
>>
>> The request parameters that get submitted look like this:
>>
>> myMap[75736572-3100-505f-dac0-0000000745b8].bar
>> myMap[b794c4a0-14b7-0130-c2da-20c9d04983db].bar
>> etc.
>>
>> The Foo.bar properties never end up being set.  Stepping through with
>> a debugger, the problem occurs in
>> AbstractCollectionFormInjector.findMatchingPrefixesWithNoneEmptyValues():
>> that method tries to find keys in the map that match a regex.  In this
>> case, the regex is defined in MapFormInjector:
>>
>>    public MapFormInjector(Class collectionType, Class keyType, Class
>> valueType, String prefix, ResteasyProviderFactory factory)
>>    {
>>       super(collectionType, valueType, prefix, Pattern.compile("^" +
>> prefix + "\\[([a-zA-Z_]+)\\]"), factory);
>>       keyInjector = new StringParameterInjector(keyType, keyType,
>> null, Form.class, null, null, new Annotation[0], factory);
>>    }
>>
>> And only allows alpha characters and underscores, which is obviously
>> why my map isn't being populated.  I'm working around this right now
>> by mapping temporary, alpha-only keys to the real ones and using those
>> in my form then replacing them after the form is submitted.  Is there
>> a way to get this regex changed to be something a little more
>> lenient?  Really, is there any reason to disallow anything other than
>> maybe brackets?
>>
>> If you want me to enter a JIRA issue for this, let me know.
>>
>> Thanks,
>> John
>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> Monitor your physical, virtual and cloud infrastructure from a single
>> web console. Get in-depth insight into apps, servers, databases, vmware,
>> SAP, cloud infrastructure, etc. Download 30-day Free Trial.
>> Pricing starts from $795 for 25 servers or applications!
>> http://p.sf.net/sfu/zoho_dev2dev_nov
>> _______________________________________________
>> Resteasy-users mailing list
>> Resteasy-users@lists.sourceforge.net
>> <mailto:Resteasy-users@lists.sourceforge.net>
>> https://lists.sourceforge.net/lists/listinfo/resteasy-users
>

-- 
Bill Burke
JBoss, a division of Red Hat
http://bill.burkecentral.com

------------------------------------------------------------------------------
Keep yourself connected to Go Parallel: 
VERIFY Test and improve your parallel project with help from experts 
and peers. http://goparallel.sourceforge.net
_______________________________________________
Resteasy-users mailing list
Resteasy-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/resteasy-users

Reply via email to