Thanks! On the server-side that's great. I'll use: input.getFormDataMap().get("propertyName");
Is there an analog on the client side? Looking at the MultipartFormDataOutput version of getFormData(), it's a map of name to OutputPart (rather than List<OutputPart>). As to what I'm trying to do - I'm implementing the OASIS S-RAMP specification, which has an Atom based API binding. The specification stipulates the 'propertyNames' input as a list of values, passed via multipart/form-data. -Eric On 01/10/2013 05:21 PM, Bill Burke wrote: > > > On 1/10/2013 9:41 AM, Eric Wittmann wrote: >> Greetings. >> >> I am trying to get a multi-value input part working in my resteasy >> service. On the inbound side, I'm expecting a multipart/formdata post, >> where an input part named "propertyName" may appear multiple times. I >> need to read that in as a Collection of some sort. Some sample code >> that may or may not be right: >> >> @POST >> @Consumes(MediaType.MULTIPART_FORM_DATA) >> @Produces(MediaType.APPLICATION_ATOM_XML_FEED) >> public Feed queryFromPost(MultipartFormDataInput input) { >> String query = input.getFormDataPart("query", >> new GenericType<String>() { }); >> Set<String> propNames = input.getFormDataPart("propertyName", >> new GenericType<Set<String>>() { }); >> return doQuery(query, propNames); >> } >> > > qyer is right, propNames is wrong. > > You'll have to do > > List<InputPart> propNames = input.getFormDataMap().get("propertyName"); > >> I'm also using resteasy on the client-side. Not sure how to submit the >> POST with multiple values. Currently I have: >> >> String url = ... >> String query = ... >> Set<String> propertyNames = ... >> ClientRequest request = new ClientRequest(url); >> MultipartFormDataOutput formData = new MultipartFormDataOutput(); >> formData.addFormData("query", query, MediaType.TEXT_PLAIN_TYPE); >> formData.addFormData("propertyName", propertyNames, >> MediaType.TEXT_PLAIN_TYPE); > > The above will try to marshal a Set<String> into TEXT_PLAIN, which will > call Set.toString(). > >> request.body(MediaType.MULTIPART_FORM_DATA_TYPE, formData); >> ClientResponse<Feed> response = request.post(Feed.class); >> >> Clearly this isn't right. Any thoughts on how this should be done? >> > > I'm not exactly sure what you're trying to do? Why not just create your > own json or XML media type and send that? What are you using multipart? > ------------------------------------------------------------------------------ Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and much more. Get web development skills now with LearnDevNow - 350+ hours of step-by-step video tutorials by Microsoft MVPs and experts. SALE $99.99 this month only -- learn more at: http://p.sf.net/sfu/learnmore_122812 _______________________________________________ Resteasy-users mailing list Resteasy-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/resteasy-users