1

Play フレームワークで Json によってレンダリングされた配列を使用して ajax リクエストを送信する際に、いくつかの問題があります。まず、私のコードを見てください。

$('#changeCategory').click(function(){
    var categoryOrder = $('#categories').sortable('toArray');
    $.ajax({
        'type': 'POST',
        'url': '@routes.ImageUploader.categoryOrderUpdate()',
        'data': {'categoryOrder': categoryOrder},
        'dataType': 'json',
        'success': function(data){
            alert('success_' + data);
        }
    });
});

ajax リクエストを「POST」として ImageUploader.categoryOrderUpdate() に送信しようとしました。categoryOrder以下のような配列です。

Jquery UI プラグインの使用

最初にこのコードを試したとき、エラーAction Not Found For request 'GET /categoryOrderUpdate'This is unexpected error が発生しました。これは、ajax リクエストを POST として定義POST /categoryOrderUpdate controllers.ImageUploader.categoryOrderUpdate()し、ルート ファイルでも定義したためです。これが私の最初の質問です。私の ajax リクエストが「POST」で送信されないのはなぜですか?

さらに、Java コントローラーでこの配列を受け取る方法はありますか? Scala で書かれた例はいくつか見ましたが、Java の例は見つかりませんでした。以下のコードを使用しようとしましたが、null ポインター例外がスローされ続けました。

@BodyParser.Of(BodyParser.Json.class)
public static Result categoryOrderUpdate() {
    JsonNode jsonRequest = request().body().asJson().findPath("categoryOrder");

私のルートファイル:

# ImageUploader
GET     /imageUpload                controllers.ImageUploader.mainPage()
POST    /imageUpload                controllers.ImageUploader.imageUploader()
POST    /imagePath                  controllers.ImageUploader.pathCalculator()
GET     /categoryAdd                controllers.ImageUploader.categoryAdder()
POST    /categoryOrderUpdate        controllers.ImageUploader.categoryOrderUpdate()
4

0 に答える 0