2016-05-09 16 views
0

如何使用application/x-www-form-urlencoded內容類型發佈項目列表?如何使用JAX-RS發佈對象列表(執行bean驗證)

例如,我想發送的List

public class Person { 
    @NotNull 
    private String name; 
    private int age; 
    // getter/setter... 
} 

這是我的休息服務定義:

@POST 
@Path("/persons") 
@Consumes(MediaType.APPLICATION_FORM_URLENCODED) 
public String createPersons(@Valid @FormParam("schedules") List<Person> persons) { 
    return "OK"; 
} 

但似乎沒有被球衣(沒有注射接受。 ..)。我如何通過JAX-RS傳遞非原始數據列表?

後的數據看起來像這樣: persons[0][name]=Test&persons[0][age]=45&persons[1][name]=Test2&persons[1][age]=22

+0

[POST使用REST的項目列表]的可能重複(http://stackoverflow.com/questions/8194781/post-a-list-of-items-using-rest) – andrucz

+0

在這篇文章中沒有迴應。我不想將我的項目作爲獨立的基本類型列表處理(例如,我需要使用[@Valid]進行bean驗證(http://docs.oracle.com/javaee/7/api/javax/validation /Valid.html)註釋)。 – Aure77

+0

爲什麼'application/x-www-form-urlencoded'?爲什麼不在體內JSON? –

回答

0

您可以在@POST監聽器使用@BeanParam

public String createPersons(@Valid @BeanParam List<Person> persons) { 
    return "OK"; 
} 

但你必須確保你的Person@FormParam註釋每個領域。