簡體   English   中英

JAX-RS處理FormParam的可變數量

[英]JAX-RS Handle variable number of FormParam

在Java中,我正在實現一個服務器,客戶端可以使用post查詢傳遞一些數據(鍵值對)。 我決定制作一個REST服務,我打算將JAX-RS和Jetty一起使用。

我之前沒有關於要發送的密鑰的知識。 有沒有辦法瀏覽客戶發布的所有KV對? 我知道如果密鑰已知,我們可以檢索數據,如 -

@Path("/testpath")
public class test {

    @POST
    @Path("/level1")
    public Response getData(
        @FormParam("key1") String val1,
        @FormParam("key2") int val2) {

        return Response.status(200)
            .entity("getData is called, Key1 : " + val1 + ", Key2 : " + val2)
            .build();

    }

}

在上面的例子中,我可以有N個不同的鍵!

我打算在沒有Jersey或RESTeasy的情況下使用vanilla JAX-RS。 但是,如果在JAX-RS中無法實現,我會對這些選項持開放態度!

使用MultiValuedMap

@Path("/testpath")
public class test {
    @POST
    @Path("/level1")
    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
    @Produces("text/plain")
    public Response getData(MultiValuedMap<String, String> params) {
        StringBuilder sb = new StringBuilder("getData is called, ");
        for(String param : params.keySet()) {
            sb.append(param + " : " + params.getFirst(param) + ", ");
        }
        return Response.status(200).entity(sb.toString()).build();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM