0

SpringMVCに小さな問題があります。基本的に私がやろうとしているのは、AJAXを使用してJSONオブジェクトをサーバーに送信することです。

要するに、JSコードは次のようになります。

var newUser = { "userId":-1, "userName":name };
var notifRecip = {
  "emailNotification":jQuery( this ).find( "td:nth-child(3) input[type='checkbox']" ).is( ":checked" ),
  "smsNotification":jQuery( this ).find( "td:nth-child(4) input[type='checkbox']" ).is( ":checked" ),
  "webNotification":jQuery( this ).find( "td:nth-child(5) input[type='checkbox']" ).is( ":checked" ),
  "user":newUser
};

私が正しい場合、それは私のフォームからのデータを含む有効なJSONオブジェクトを私に与えますはい?今私はajax投稿をしています:

jQuery.ajax( "/notifications/saveNewUsers/" + notId, {
       dataType:'json',
      contentType:"application/json",
     type:"POST",
    data:( notifRecip )
} )
.success( function ( response )
{
    console.log( response )
} );

これまでのところ、私のコントローラーは適切なnotId値でリクエストを受け取ります。

@RequestMapping(value = "saveNewUsers/{notificationId}", method = RequestMethod.POST, headers = {"content-type=application/json"})
public
@ResponseBody
boolean saveNewUsers( @RequestBody NotificationRecipient notificationRecipient, @PathVariable Integer notificationId )
{
    System.out.println( notificationId + " " + notificationRecipient );
    return false;
}

ただし、コンソール出力は次のようになります。

18:45:10,947 INFO  [stdout] (ajp--127.0.0.1-8009-1) 0 null

そして、私は理由がわかりません。私はSpringMVCにまったく慣れていないので、助けていただければ幸いです。私にはJackson依存関係があります。

オブジェクトNotificationRecipient

public class NotificationRecipient
{
private User user; 
private boolean emailNotification;
private boolean smsNotification;
private boolean webNotification;

//with getters and setters
}

およびUser

public class User
{
private Integer userId;
private String userName;

//with getters and setters
}
4

1 に答える 1

0

かなりのグーグルの後:

を呼び出す必要がありますdata: JSON.stringify( notifRecip )。それなしでPOSTを実行すると、JSONオブジェクトのパラメーターがGETパラメーターとして解析されました(... webNotificaiton = false&smsNotification = false ...)

于 2012-06-25T20:41:43.497 に答える