如何在Java POST中调用formdata参数

时间:2016-11-20 10:01:27

标签: java ajax multipartform-data

我在Ajax中传递formData,如何在Java POST中处理?

    formData.append(file.name, file);
    formData.append('para', 'true');
    $.ajax({
        url: 'example.com/test',
        type: 'POST',
        data: formData,
        dataType: 'json',
        processData: false,
        contentType: false, 
    })

和Java,

@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces("application/json")
@Path("test")
public getJSONFromMultipart(@Multipart(value = "para") boolean test, @Multipart(value = "uploadedFile") Attachment att, @Context final UriInfo info) { ... }

我收到MULTIPART_FORM_DATA的编译错误,因此多部分错误。这是调用formData的正确方法吗?

1 个答案:

答案 0 :(得分:0)

您在MediaType使用了哪个套餐? MediaType存在于Java EE jar中,但也存在于Spring Web jar中。

这些不是同一类型。

在Spring课程中:org.springframework.http.MediaType

public class MediaType{
    ...
    public final static MediaType MULTIPART_FORM_DATA;
}

在Java EE类中:javax.ws.rs.core.MediaType

public class MediaType{
    ...
    public final static String MULTIPART_FORM_DATA= "multipart/form-data";
}

为什么不在@Produces@Consumes中使用常量?

import javax.ws.rs.core.MediaType;

@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON )

当您以Java EE方式声明处理程序时,在选择导入时应该小心。