首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用JSTL在JSP下拉列表中显示部门代码和描述

使用JSTL在JSP下拉列表中显示部门代码和描述
EN

Stack Overflow用户
提问于 2013-02-10 19:44:26
回答 2查看 1.7K关注 0票数 0

我有一个DAO类,它有一个返回java.util.List的方法,其中我从数据库返回Employee DepartmentEmployee Department Code

代码语言:javascript
运行
复制
public List<Employee> getEmployeeDetails() {
    List<Employee> emp = new ArrayList<Employee>();

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

在我的ManagedBean中,我想调用getEmployeeDetails()方法并将其填充到一个名为getEmpDetails的方法中

代码语言:javascript
运行
复制
public List<Employee> getItems() {
    for (Employee employee: myDAO.getEmployeeDetails()) {
        list.add(employeeLabel.getEmployeeName(),
                employeeLabel.getEmployeeDepartment());
    }
}

但问题是list.add不允许有两个字符串参数,因为我正在获取

代码语言:javascript
运行
复制
method add(java.lang.String, java.lang.String) not found in 
interface java.util.List

那么,如何从dao获取值并加载到返回List的ManagedBean中的方法,最后,如何使用jstl作为下拉组件在JSP中调用这些值呢?就像这样

代码语言:javascript
运行
复制
<select id="emp">
    <c:forEach >
        <option value="${item}">${item}</option>
    </c:forEach>
</select>

问候

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-10 19:55:17

我假设EmployeeGroup是独一无二的。因此,您可以使用Map而不是list来获取键值结构。在底层,您可以找到使用jstl在jsp中打印Map的代码

代码语言:javascript
运行
复制
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>
票数 2
EN

Stack Overflow用户

发布于 2013-02-10 21:51:20

我会跳过所有类型的映射。通过在bean中提供employeeDetails的公共getter,您可以存储列表并直接从JSP中使用它。

代码语言:javascript
运行
复制
<select id="emp">
<c:forEach items="${beanName.employeeDetails}" var="res">
    <option value="${res.employeeGroup}">${res.employeeGroupDescription}</option>
</c:forEach>

确保sql通过在sql或unique索引中使用DISTINCT返回唯一对。

Java代码:

代码语言:javascript
运行
复制
    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;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14797386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档