1

これまでの私のプロジェクトのスクリーンショットは次のとおりです。

ここに画像の説明を入力

このプログラムの目的は、サーブレットにある ArrayList から特定のクラスを見つけることです。左側で定義したクラス (つまり、X ロケーションのクラス、Y セメスター、Z 教師) から必要なクラスを検索します。これまでのところ、このコードを使用して、スクリーン ショットに表示されているすべてのクラスを取得できます。

スクリプト:

//Serves up the data THIS IS THE WHAT GETS THE TABLE DATA
$('#btnData').click(function() {

    $("#searchAnimation").fadeTo(0,1, function(){
        $.get('daoServlet', function(responseText) {
            $('#dataDisp').html(responseText);
        }).complete(function(){$("#searchAnimation").fadeTo(0,0);});
    });

});

ジャワ:

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException
{
    //String that gets returned as HTML
    StringBuilder returnAsHTML = new StringBuilder();

    //See if the class is closed, has a lab, or is just a regular class
    for(ClassInfo classes : allClassListings)
    {
        //Class is full, style accordingly
        if(classes.getSectionMeetingInfo().contentEquals("LEC") && classes.getSectionEnrolled().contentEquals("0"))
        {
            returnAsHTML.append(closedClass(classes));
        }
        else if(classes.getSectionMeetingInfo().contentEquals("LAB")) //These are labs, style accordingly
        {
            returnAsHTML.append(labClass(classes));
        }
        else //These are normal classes without lab components
        {
            returnAsHTML.append(openClass(classes));
        }

    }

    response.setContentType("text/html");
    response.setCharacterEncoding("UTF-8");
    response.getWriter().write(returnAsHTML.toString());
}

私の質問は、ユーザーが JSP ページで選択したデータの送信を開始し、それを見つけるために ArrayList を並べ替えるにはどうすればよいですか? <% //code %> を使用して Java コードを JSP ページに直接挿入できることはわかっていますが、プロジェクトの要件により、ページ自体の本文にスクリプトを記述できず、すべてが外部にリンクされています。

たとえば、ユーザーが Location で「Springfield」をチェックし、学期で「Summer」と言うと、Springfield の夏期のすべてのクラスのテーブルを作成する必要があります。サーブレットで検索するためにこれらのパラメーターを送信する方法を学ぶために、どのように/どこから始めればよいかわかりません。

4

1 に答える 1

1

ドキュメントに従って$.get() JS オブジェクトを 2 番目の引数として渡すことができます (dataドキュメントで呼び出されます)。

したがって、次の例でそれを行う必要があります。

// Do your thing to prepare them.
var param1 = "value1";
var param2 = "value2";

// Now send it as JS object.
$.get('daoServlet', { param1: param1, param2: param2 }, function(responseText) {
    // ...
});

それらはHttpServletRequest#getParameter()、通常の方法で利用可能なサーブレットにあります。

String param1 = request.getParameter("param1"); // value1
String param2 = request.getParameter("param2"); // value2

実際に HTML を ajax 化する場合は、個々の入力要素の緩やかな値を手動でいじる代わりに、フォーム データ全体を送信するために を<form>使用することもできます。$.serialize()これが a であると仮定した例を次に示します<form id="search">

$.get('daoServlet', $('#search').serialize(), function(responseText) {
    // ...
});

また

$('#search').submit(function() {
    $.get('daoServlet', $(this).serialize(), function(responseText) {
            // ...
    });
});

以下も参照してください。

于 2013-01-22T18:54:41.633 に答える