1

Java EE プログラミングは初めてです。jspに関する私の理解に従ってください。間違っている場合は訂正してください
。JSP ページは最初にサーブレットに変換され、次に html に変換され、結果の html ページがブラウザに表示されます。

jspページがブラウザに表示されているとします。つまり、現在はhtmlページであり、現在ロードされているページに印刷したい名前または何らかのデータを持つJavaリストがあります。ajax を使用して List オブジェクトを取得できますが、html は Java コレクションをレンダリングできないため、それを html に表示する方法はありません。

流れや基本的な概念を誤解していたところを訂正してください。

ありがとう。

4

3 に答える 3

3

ajaxを使用して(jQueryを使用するのは簡単です)、サーブレットを呼び出すことができます

function callMe(){
    $.ajax({
      type: "POST",
      url: "/someServlet",
      data: { param1: "val1" , param2: "val2" }
    }).done(function( data) {
       //TODO
    });
}

サーブレットではdoPost()、Gsonを使用してコレクションのJSON表現を生成します

String parameter1 = request.getParameter(param1);
String parameter2 = request.getParameter(param2);
//call to service to generate the collection
//for example List<Employee>
List<Employee> employees  = someService(parameter1, parameter2);
//using google's gson
Gson gson = new Gson();
String json = new Gson().toJson(employees);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);

これで、javascript関数の応答がjavascriptオブジェクトの配列として得られたので、次のように変更します。

    }).done(function( data) {
        //some processing for display
        var len = data.length
        for (var i=0; i<len; ++i) {
               var employeeFirstName =  data[i].firstName;
               var employeeLastName =  data[i].lastName;
               //set it to some DIV, or do the processing you want
        }
      }

    });

も参照してください

于 2012-06-20T07:18:09.900 に答える
0

リストの内容をテキストとしてユーザーのブラウザに送信する必要があります(これは通常行われることです)。

ブラウザとサーバー間でリストの内容を転送するための便利な形式はJSONです。これは、JavaScriptで読みやすく、サーバー上で簡単に生成できるためです。

その後、JavaScriptを使用して、返されたテキストを好きな方法で表示できます。

于 2012-06-20T07:17:13.313 に答える
0

JSP は、HTTP 要求を処理できる Java サーブレット クラスにコンパイルされます。サーブレットがアプリケーション サーバーにデプロイされると、HTTP 要求が処理のためにサーブレットに渡されます。通常、HTML やステータス コードなどを含む HTTP 応答が生成されます。

したがって、リストをループし、おそらくブラウザでそのリストをレンダリングするための適切な HTML を生成するのは、サーブレット内の Java コードです。

それが AJAX リクエストであるかどうかは問題ではありません。AJAX 要求は、完全な HTML ページをレンダリングするのではなく、別のサーブレットによって処理される可能性があります。このサーブレットは、おそらく<ul><li>...</li></ul>リストをレンダリングするためだけに、部分的なページのみを生成します。HTML ページの JavaScript は、リストの古いバージョンを置き換えることで、ユーザー インターフェースを更新することができます。

于 2012-06-20T07:25:29.720 に答える