如何自动将multipart / form-data输入映射到Jersey中的bean

时间:2017-02-15 13:53:20

标签: java rest jersey

我有一个Jersey REST api,它接收输入作为multipart / form-data。签名如下:

@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Path("/getorders")
public Response getOrders(final FormDataMultiPart request) {

表单中的输入参数是:

clientName
orderType
year

我希望有类似的东西:

@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Path("/getOrders")
public Response getOrders(final OrderBean order) {

将所有输入都放在这样的bean中:

public class OrderBean {

    private String clientName;
    private int orderType;
    private int year;

    // Getters and setters
}

有没有办法用泽西岛自动完成?我知道我可以手动映射字段并填写bean,但实际上我正在寻找一个注释或类似的东西,它可以自动填充bean。

1 个答案:

答案 0 :(得分:0)

Jersey在@FormDataParam bean中支持@BeanParam。如果你这样做(正如你在大多数例子中看到的那样):

@POST
public Response post(@FormDataParam("clientName") String clientName) {}

然后你也可以

class OrderBean {
  @FormDataParam("clientName")
  private String clientName;

  // getter/setters
}

@POST
public Response post(@BeanParam OrderBean order) {}