我有一个休息网络服务,比如
@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从客户端使用下面的代码片段调用上面的rest 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>
问题:我无法正确地将参数传递给服务方法的名称和价格。
我在客户端传递了两个参数,但在服务端只有参数“名称”被映射(也有错误的值)。当我打印名称和价格时,我得到以下信息
System.out.println(name); ==> name='apple'&price=12
System.out.println(price); == null
我如何从prototypejs客户端将参数传递给服务,以便'name'获取值apple,'price'获取值12。