0

Employee Departmentデータベースから返されるjava.util.Listを返すメソッドを持つDAOクラスがありEmployee Department Codeます。

public List<Employee> getEmployeeDetails() {
    List<Employee> emp = new ArrayList<Employee>();

    while (resultSet.next()) {
        emp.add(mapListEmployees(resultSet));
    }
    return emp ;
}

ManagedBeanで、メソッドを呼び出しgetEmployeeDetails()、これをgetEmpDetailsというメソッドに入力します。

public List<Employee> getItems() {
    for (Employee employee: myDAO.getEmployeeDetails()) {
        list.add(employeeLabel.getEmployeeName(),
                employeeLabel.getEmployeeDepartment());
    }
}

しかし、問題はlist.add、私が取得しているため、2つの文字列引数を持つことができないことです

method add(java.lang.String, java.lang.String) not found in 
interface java.util.List

では、daoから値を取得し、Listを返すManagedBeanのメソッドにロードするにはどうすればよいですか?最後に、ドロップダウンコンポーネントとしてjstlを使用してJSPページでこれらを呼び出すにはどうすればよいですか?何かのようなもの

<select id="emp">
    <c:forEach >
        <option value="${item}">${item}</option>
    </c:forEach>
</select>

よろしく

4

2 に答える 2

2

EmployeeGroup は一意であると想定しています。したがって、リストの代わりに Map を使用して、キーと値の構造を取得できます。根底にあるのは、jstl を使用して jsp でマップを出力するコードです。

public List<Employee> getItems() {
   Map<String, String> mapObj = new HashMap<String, String>();
            for (Employee employee: 
                 myDAO.getEmployeeDetails()) {
                map.put(employeeLabel.getEmployeeGroup(),
                         employeeLabel.getEmployeeGroupDescription());
            }
 }

JSP:
//Don't forget to add the mapObj to the request context
<select id="emp">
        <c:forEach var="item" items="${mapObj}">
            <option value="${item.key}">${item.value}</option>
        </c:forEach>
    </select>
于 2013-02-10T11:55:16.950 に答える
1

すべての種類のマッピングをスキップします。Bean で employeeDetails の public getter を提供することにより、List を保存して JSP から直接使用できます。

<select id="emp">
<c:forEach items="${beanName.employeeDetails}" var="res">
    <option value="${res.employeeGroup}">${res.employeeGroupDescription}</option>
</c:forEach>

SQLまたはUNIQUEインデックスでDISTINCTを使用して、SQLが一意のペアを返すようにしてください。

Java コード:

    private List<Employee> employeeDetails = new ArrayList<Employee>();
    public List<Employee> getEmployeeDetails() {
    List<Employee> emp = new ArrayList<Employee>();

    while (resultSet.next()) {
        emp.add(mapListEmployees(resultSet));
    }
    this.employeeDetails = emp;


    return this.employeeDetails;
}
于 2013-02-10T13:51:19.880 に答える