2015-08-28 64 views
0

我有這個需要很多參數的請求。Jersey如何迭代參數?

那麼有沒有一種方法來迭代參數,而不是手動訪問它們。

@PUT 
@Path("/{foobar}") 
public Response createFoobar(
     @PathParam("foo1") String foo1, 
     @PathParam("foo2") String foo2, 
     @PathParam("foo3") String foo3, 
     @PathParam("foo4") String foo4 
     ... 
{ 
    FooBar foobar = new FooBar(); 
    foobar.foo1 = foo1; 
    foobar.foo2 = foo2; 
    ... 

    return Response.status(200)...; 
} 

我想要什麼

foreach(Object param in pathParams){ 
    if(param.name.equals("foo1") 
     foobar.setFoo1((String)param); 
    if(param.name.equals("foo2") 
     foobar.setFoo2((String)param); 
    ... 
} 

這可能嗎?

回答

2

可以獲取查詢 - 和從UriInfo路徑參數:

@GET 
public String get(@Context UriInfo ui) { 
    MultivaluedMap<String, String> queryParams = ui.getQueryParameters(); 
    MultivaluedMap<String, String> pathParams = ui.getPathParameters(); 
} 

要從應用程序/ X WWW的窗體-urlencoded一個POST的內容或PUT請求獲得的參數,注入一個javax.ws.rs.core.Form對象成控制器方法:

@PUT 
public String put(Form form) { 
    MultivaluedMap<String, String> formParams = form.asMap(); 
} 
+0

Thx用於包含PUT詳細信息 – Gobliins