有没有一种方法可以从 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) {}
我通过将 @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) {}