restFul Web服务方法

时间:2014-05-21 18:09:29

标签: java jquery ajax web-services jersey

我希望像参数一样将一个Array传递给带有Jersey的RESTful webservice。我有一个多选择表单,用户可以选择多个选项。然后我使用AJAX将选定的值传递给RESTful Web服务。

这是选择:

<select id="u" multiple class="form-control">                       
 <option value="1">1</option>                   
 <option value="2">2</option>                   
 <option value="3">3</option>
</select>

jquery js:

$('#send').on('click', function() {
        $.ajax({
            url: "/pc/ws/ms/save-options",
            contentType: "application/x-www-form-urlencoded",
            cache: false,
            type: "POST",
            data: {
                ur: $('#u').val()
            }
        });
    });

我不知道如何在web服务方法上指示接收是一个数组

1 个答案:

答案 0 :(得分:0)

如果您正在使用Maven和Jersey,我们可以添加这个maven依赖项,其中包括Jackson lib:

<properties>
    ...
    <dependency.jersey.version>1.18.1</dependency.jersey.version>
    ...
</properties>

+

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-json</artifactId>
    <version>${dependency.jersey.version}</version>
</dependency>

和类似于这个的代码(未经测试!)也许可以解决这个问题:

@POST
@Path("/save-options")
@Consumes(MediaType.APPLICATION_JSON)
public Response getMyValues(Collection<Integer> values) {
    // Do whathever I want with my values
    ...
}