如何使用JAX-RS发布对象列表(以执行bean验证)

时间:2016-05-09 17:04:24

标签: java rest post jax-rs

如何使用application/x-www-form-urlencoded内容类型发布项目列表?

例如,我想发送一个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

1 个答案:

答案 0 :(得分:0)

您可以在@BeanParam听众上使用@POST

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

但您必须确保Person每个字段都有@FormParam个注释。