有没有一种方法可以从HttpServletRequest读取表单数据?

时间:2019-06-06 09:47:43

标签: java java-ee jersey multipartform-data multipart

我通过将@FormDataParam添加到REST接口的参数来接收表单数据。

我们公司的代码准则指出,在一种方法中,我们不应使用超过7个参数。因此,我想减少此REST接口的参数数量。

@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
public Response upload(@Context final HttpServletRequest request, @FormDataParam("file") final java.io.File file, @FormDataParam("file") final FormDataContentDisposition fileMetaData, @FormDataParam("file") final FormDataBodyPart formDataBodyPart, @FormDataParam("networksegments") final String networksegments, @FormDataParam("users") final String users, @FormDataParam("username") final String username, @FormDataParam("token") final String token) {
    //Some code
}

我正在寻找类似request.getFormData("name")的方法来使参数过时。上面的代码工作正常,我想优化。

1 个答案:

答案 0 :(得分:2)

您可以使用@FormDataParam参数创建自己的bean,然后将其添加到bean,然后对端点中的所有参数使用一个@BeanParam

class OrderBean {
   @FormDataParam("clientName")
    private String clientName;
  // getter/setters
  }

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