私は次のようなRESTWebサービスを持っています
@Path("/postItem")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public Item postItem(@QueryParam("name") String name, @QueryParam("price") String price)
{
System.out.println(name);
System.out.println(price);
return new Item(name , price);
}
そして、prototypejs javascript libを使用して、以下のコードスニペットを使用してクライアント側から上記の残りのWebサービスを呼び出します。
<script>
new Ajax.Request('/some_url', {
method:'post',
parameters: {name: 'apple', price: 12}
onSuccess: function(transport) {
var response = transport.responseText || "no response text";
alert("Success! \n\n" + response);
},
onFailure: function() { alert('Something went wrong...'); }
});
</script>
問題:サービスメソッドの名前と価格にパラメーターを正しく渡すことができません。
クライアントで2つのパラメーターを渡していますが、サービス側ではパラメーター'name'のみがマップされています(これも間違った値です)。名前と価格を印刷すると、次のようになります
System.out.println(name); ==> name='apple'&price=12
System.out.println(price); == null
'name'が値appleを取得し、'price'が値12を取得するように、prototypejsクライアントからサービスにパラメーターを渡すにはどうすればよいですか。