【问题标题】:How to populate a dropdown list using HashTable? or HashMap?如何使用 HashTable 填充下拉列表?还是哈希映射?
【发布时间】:2013-11-04 13:12:51
【问题描述】:

在Java Bean Page中我写了这段代码:-

package sandip;

import java.sql;
import java.util.*;
import java.text.*;
import sandip.DataBaseConnection;

public class UserBean {

  private ArrayList<Assay> assays = new ArrayList<Assay>();
  private ArrayList<String> StringValue = new ArrayList<String>();

  private Map<String, String> details = new HashMap<String, String>();

public void setDetails() {    

    Statement stmt = null;
    ResultSet rs = null;
    String sql = null;
    DataBaseConnection obj = new DataBaseConnection();
    Connection conn = null;
    conn = obj.connectToDb();


    try{

      stmt = conn.createStatement();
      sql = "SELECT `email`, `password` FROM `accounts` LIMIT 0, 12";
      rs =  stmt.executeQuery(sql);

      while(rs.next()) {
        details.put(rs.getString("password"), rs.getString("email"));
      }
    }catch(SQLException e) {
       e.printStackTrace();
    }catch(Exception ex) {
      ex.printStackTrace();
    }

  }

  public Map<String, String> getDetails() {

    return this.details;
  }
}

在我的 jsp 页面中,我使用了循环遍历:-

但它不打印任何东西。我现在应该改变什么?如果我必须做其他事情?

<h3>Hashtable iteration</h3>
<table border="1">
  <c:forEach items="${userDetails.details}" var="item">
    <tr>
      <td align="center"><c:out value="${item.name}"/></td>
      <td align="center">${item.value}</td>
    </tr>
  </c:forEach>
    <br>
  <ol>
    <c:forEach items="${userDetails.details}" var="item">
      <li><c:out value="${item.key}"/>=<c:out value="${item.value}"/></li>
      </c:forEach>
  </ol>

${item.key} 不打印任何值

【问题讨论】:

    标签: map foreach hashmap jstl hashtable


    【解决方案1】:

    userDetails 是如何设置到 JSP 中的?谁在调用 setDetails 方法?

    无论如何,不​​带任何参数的 setter 方法并不是一个好主意,因为它违反了 java bean 约定。根据您的 getDetails() getter,您的 setDetails() 应该接受 Map&lt;String, String&gt; 作为参数。我只会将UserBean 用作数据持有者,并将数据库获取代码移动到 servlet(或其他控制器、服务或 DAO 对象)中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-13
      相关资源
      最近更新 更多