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

Is there a method to read form data from HttpServletRequest?

我通过将 @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") 的方法来使参数过时。上面的代码运行良好,我想优化一下。

您可以使用 @FormDataParam 参数创建自己的 bean 并添加到 bean,然后对端点

中的所有参数使用一个 @BeanParam
class OrderBean {
   @FormDataParam("clientName")
    private String clientName;
  // getter/setters
  }

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