0

ユーザーがデータベースから表示された従業員のリストをjsp形式で表示できる管理サイトで作業しています。プロジェクトでは、Java クラスとサーブレットを使用します。フォームには、従業員の詳細と、employeeID (データベースの主キー) に値が設定されたチェック ボックスがあります。

 <input type="checkbox" value="${employee.empID}" name="empArray">

8 人の従業員を選択すると、その値をサーブレットに戻し、配列リストに格納して印刷できます。私が今達成しようとしているのは、配列リスト内の empID を使用してデータベース内の一致する値にアクセスし、配列リストに格納されている ID に基づいて従業員のテーブルを作成できるようにすることです。

つまり、String[] empArray に従業員 ID の「5,7,9,20 ...etc」が含まれている場合、レポートのデータをエクスポートできるように、新しいテーブルに詳細を表示できるようにしたいと考えています。これについて最善の方法を教えてくれる人はいますか?

以下はサーブレットコードです

                 String[] employeeArray ;

                employeeArray  = request.getParameterValues("empArray"); 
                 if (employeeArray != null && employeeArray.length != 0)  

             {
                 System.out.println("You have selected: ");
                  String empID="";
                   for (int i = 0; i < employeeArray.length; i++) 
             {
                 empID+=employeeArray[i]+"\n";
             }
              System.out.println(empID);
              session.setAttribute("employeeArray",  empID);

             }
4

1 に答える 1

0

コード(フォーマット済み)は次のとおりです。

String[] employeeArray ;
employeeArray  = request.getParameterValues("empArray"); 

if (employeeArray != null && employeeArray.length != 0){
    System.out.println("You have selected: ");
    String empID="";

    for (int i = 0; i < employeeArray.length; i++) {
        empID+=employeeArray[i]+"\n";
    }

    System.out.println(empID);
    session.setAttribute("employeeArray",  empID);

}

セッションに追加する値は配列ではなく、文字列です

以下のコードを編集しました。より適切な名前を使用しようとしましたが、従業員を表すクラスとデータベース データを検索するサービスがあると想定しています。

...
EmployeeService service; // initialised else where
...

List<Employee> employees = new ArrayList<Employee>();
String[] employeeIds ;
employeeIds  = request.getParameterValues("empArray"); 

if (employeeIds != null && employeeIds.length != 0){
    String empID="";

    Employee employee;

    for (int i = 0; i < employeeIds.length; i++) {
        employee = service.find(employeeIds[i]); // get from database
        if(employee != null){
            employees.add(employee);
        }
    }

    session.setAttribute("employees",  employees);

}
于 2013-03-04T01:53:39.347 に答える