2016-11-20 6 views
0

Я прохожу formData в Ajax, как я могу обрабатывать Java POST?Как вызвать параметры 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?

ответ

0

Какой пакет вы используете для MediaType? MediaType существует в Java EE jar, но также в Spring Web jar.

Они не одного типа.

Весной класс: 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, вы должны быть осторожны при выборе своего импорта.