Marc Hadley wrote:
> On May 11, 2008, at 2:04 AM, Jyothsna L wrote:
>>
>> 1) while testing the POST of restful web services, I always get a 
>> string content as parameter that needs to be filled while posting.
>> so , I am parsing the string based some delimiters like comma and then 
>> saving each element in database.
>> for example my database has email,name as its columns in one table.
>> so if my POST parameter : content has jyothsna_at_yahoo.com, jyothsna. I 
>> am parsing it into two elements jyothsna_at_yahoo.com(email) and 
>> jyothsna(name).
>> and then I am creating entries in the table.
>>
>> I tried to add two parameters to postxml() instead of one. but, its 
>> not working properly.
>>
>> so do you suggesting parsing one single parameter or is there any 
>> other good way to have multiple parameters.
>>
> The body of a post is mapped to a single parameter but you can use a 
> custom type for that parameter. If you do that you need to create a 
> MessageBodyReader<CustomType> which Jersey will use to convert the 
> posted data into an instance of the custom type.
> 
An alternative is to use the "application/x-www-form-urlencoded" media 
type with the Java type MultivaluedMap<String, String>, then you could POST:
   email=yothsna_at_yahoo.com&name=jyothsna
for example:
   @POST
   @ConsumeMime("application/x-www-form-urlencoded")
   public void post(MultiValuedMap<String, String> form) {
      String email = form.getFirst("email");
      String name = form.getFirst("name");
   }
We have previously discussed on the list about having "form beans", for 
example:
   @FormBean
   public class Bean {
      public String email;
      public String name;
   }
   @POST
   @ConsumeMime("application/x-www-form-urlencoded")
   public void post(Bean b) {
     ...
   }
We understand the technical details to do this (it is a 
MessageBodyReader that operates on @FormBean annotated classes) it is 
just getting the time to do it!
Paul.
-- 
| ? + ? = To question
----------------\
    Paul Sandoz
         x38109
+33-4-76188109