0

私の問題は、Webフォームがあり、このデータをジャージーrestFULLメソッドに送信したいということです。

私のJavascriptでは、次のように呼び出しています。

 console.log('Sending event creation ---> '+eventInJsonString);
$.ajax({
    url: "/Bxip/rest/events/",
//  dataType: 'json',
    type: 'post',
    data: eventInJsonString,
    contentType: 'multipart/form-data',
    success: function(data) {
        console.log("success ", data.response);
    },
    error: function(data) {
        console.log("error ", data.error);
    }
});

私のジャージの方法は次のとおりです。

@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.TEXT_HTML)
//Retornará HTTP_STATUS 204 (on success)
public String addEvent(
        @FormParam("title") String title,
        @FormParam("fechaInicio") String fechaInicio,
        @FormParam("lugar") String lugar,
        @FormParam("categoria") String categoria,
        @FormParam("description") String description,
        @FormParam("fechaFin") String fechaFin) throws IOException {

    System.out.println("ENTRAAA    = " + title + description);

そして、データを送信する前の結果:

 Sending event creation ---> {"title":"aaaa","description":"        aaaaa","fechaInicio":"bbbb","categoria":"Beber y comer","fechaFin":"forever"}

ただし、Javaサーバー側では、パラメーターはnullです。

ENTRAAA    = nullnull

@POSTクライアントからこのジャージメソッドに送信するにはどうすればよいですか?

4

1 に答える 1

3

これを行うためのいくつかの方法。ここでは2つの可能性があります。

  • fromparamsを使用する

ジャージーで@FormParamを受信するには、投稿の本文にエンコードされたデータURLを送信する必要があります。

リクエストのContentTypeは次のようになります

application/x-www-form-urlencoded

また、eventInJsonStringのコンテンツは次のようになります。

title=aaaa&description=aaaaa&fechaInicio=bbbb&categoria=Beber y comer&fechaFin=forever

ジャージーでこれを処理するには、@Consumesタイプを次のように変更する必要があります。

@Consumes(MediaType.APPLICATION_FORM_URLENCODED)

このようにして、@FormParamが入力されます。

  • jsonを使用する

問題は、jsonでデータを送信しようとしていることです。そのように送信したい場合は、何かを変更する必要もあります。

リクエストのContentTypeを次のように変更する必要があります

application/json

ジャージーでは、@Consumesタイプをに変更する必要があります

@Consumes(MediaType.APPLICATION_JSON)

そのように送信する場合は、メソッドから@FormParamを削除する必要もあります。

public String addEvent(String jsonBody) throws IOException {

    // Now you need to parse the json to get your parameters...
于 2013-01-02T10:39:17.270 に答える