[英]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.