0

次の方法でサーブレットをjQueryに通信しています。

jQuery:

$('.snd').click(function (){
    $.ajax({
        url: '/ProjectName/ServletName?action=test',
        data: {cl1: $('.t11').val()},
        success: function (response){
            $('.t12').val(response);
        }
    }); 
});

サーブレット

if (action.compareTo("test") == 0) {
            action = "abc";

            response.setContentType("text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();

            try {

                out.println("text1");
            } finally {
                out.close();
            }
        }

これを行うことで、結果「text1」が得られます

通常のテキストを送信する代わりに、オブジェクトまたは文字列配列を jQuery に応答として送信したい場合はどうすればよいでしょうか?

例えば

サーブレットには次の配列があります

String[] ss= {"n1","n2"};

そしてjQueryで私が使いたい

$('.t12').val(response[0]);

結果「n1」を取得する

4

1 に答える 1

3

サーバーとブラウザーの間でオブジェクトを直接送信することはできませんが、できることはそれらを JSON テキスト形式にシリアル化することです (これが JSON の発明の目的です)。 JSON.serialize()(または他の言語で同等の) サーバー側とJSON.parse()クライアント側で。

jQuery ajax 呼び出しでデータ型を JSON として指定すると、自動的に解析されるため、 を呼び出す必要さえありませんJSON.parse()

于 2013-04-22T22:11:38.970 に答える