1

Web ページで JavaScript を実行し、Java スレッドを実行しています。すべてがSpring-MVCフレームワークにあります。私の考えは、jsp サイトの JavaScript コードにあるということです。コントローラーは、Java でゲーム スレッドを作成します。しかし、ゲーム スレッドにデータを送信する必要があります。だから私はそのためにコントローラーを使いたいです。そのため、サイト内の JavaScript スクリプトから、更新されたデータのコントローラーを呼び出し、そこから応答を取得したいと考えています。

そこで、サイトの JavaScript コードに次のようなコードを入力して、JSON データをコントローラーに送信することを考えています。アイデアを確認するためのコード例:

$("#btnPostGlEntry").click(function () {
    var glEntries = '{"glEntries":[{"generalLedgerId":"1"},{"accountId":"4"},{"amount":"344.44"},{"description":"Test Entry"},{"debit":"Yes"}]}';
    $.ajax({
        type: "POST",
        contentType: "application/json",
        dataType: "json",
        url: contextPath + "/generalLedger/journalEntries/form",
        data : JSON.stringify(glEntries),
        success: function(data) {
            alert("Success!!!");
        },
        error: function (jqXHR, textStatus, errorThrown) {
            alert(jqXHR + " : " + textStatus + " : " + errorThrown);
        }
    });
});

JSON - Spring MVC : json データを spring MVC コントローラーにポストする方法

また

var PersonText = '["firstname":"John", "lastname":"Someone"]';
$.ajax({
type : 'POST',
url : "/addnewperson.do",
data : {'personModel' : personText},
datatype : 'json',
success : function(data) {
    var obj = jQuery.parseJSON(data);
}
});

Javascript から Spring MVC を呼び出す方法は?

したがって、コントローラーには次のように考える必要があります。

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
@Controller
public class TestController {
    @RequestMapping(value="/test.htm")
    public @ResponseBody Integer add(@RequestParam(value="inputNumber1", required=true) Integer inputNumber1,
            Model model) {
        System.out.println(inputNumber1);
        return inputNumber1;
    }
}

コントローラから JavaScript にデータを送信できません

いくつか質問があります。初め。JavaScript は常に動作するゲーム コード (ブラウザでのグラフィック表示) です。コントローラーを呼び出してデータを転送したい。そしてコントローラ(物理エンジン)からデータを受け取ります。したがって、コントローラーアクションからページをリロードしたくありません。2番。この場合、コントローラで通信するのは良い考えでしょうか?

4

1 に答える 1

1

これを使用して、ページをリロードせずにクライアントとコントローラーの間でデータを転送しても問題ありません。つまり、コントローラで AJAX と @ResponseBody タグを使用します。

または、コントローラーを完全にバイパスし、DWR (Direct Web Remoting) を使用してデータを直接転送するために、定義済みのリモート メソッド (サービス層など) に直接進むこともできます。これは、AJAX を使用した直接転送には適していますが、MVC フレームワークをバイパスします。

http://directwebremoting.org/dwr/index.html

于 2013-05-09T21:58:49.607 に答える