java - 如何将java中HashMap中表的多个值发送到jsp?

标签 java jsp hashmap

我想从 java tp 中的 hashmap 发送一个 jsp 文件中数据库表中的多个值。这就是我到目前为止所做的

    ResultSet rs = st.executeQuery("SELECT * FROM seeding where scheme = '"+user+"' "); 
    HashMap<String, String> verify = new HashMap<String, String>();
    while (rs.next())
    {
    verify.put("beneficiaryID",rs.getString("beneficiaryID"));
    verify.put("scheme", rs.getString("scheme"));
    verify.put("aadhaar",rs.getString("aadhaar"));
    verify.put("name",rs.getString("name"));
    }
    request.setAttribute("verify", verify);

jsp>>

<%
HashMap<String, String> verify = (HashMap<String, String>) 
request.getAttribute("verify");
for (String key : verify.keySet())  
{ 
out.print(verify.get("aadhaar"));
out.print(verify.get("scheme"));
out.print(verify.get("beneficiaryID")+"$"+verify.get("name"));
}

但这只给出了表的最后一行,而不是所有结果! 需要改变什么? 谢谢

最佳答案

考虑这段代码:

HashMap<String, String> verify = new HashMap<String, String>();
while (rs.next())
{
    verify.put("beneficiaryID",rs.getString("beneficiaryID"));
    verify.put("scheme", rs.getString("scheme"));
    verify.put("aadhaar",rs.getString("aadhaar"));
    verify.put("name",rs.getString("name"));
}

每次循环(针对数据库中的每一行或每个结果集行),您都会将相同的条目放入 Map 中并使用新值。

每一行都会覆盖前一行。

您无法在 JSP 中取出它们,因为您覆盖了除最后一个之外的所有内容。

有几种解决方案。我将创建一个具有 4 个属性的 POJO 类,并将每行结果放入一个列表中。但是,让我们使用您的 map 创意:

List results = new ArrayList<Map<String, String>>();
while (rs.next())
{
    Map<String, String> verify = new HashMap<String, String>();
    verify.put("beneficiaryID",rs.getString("beneficiaryID"));
    verify.put("scheme", rs.getString("scheme"));
    verify.put("aadhaar",rs.getString("aadhaar"));
    verify.put("name",rs.getString("name"));
    results.add(verify);
}
 request.setAttribute("verify", results);

现在您必须稍微更改一下 JSP(其中包含丑陋的 java 代码):

<%
List<Map<String, String>> results = (List<Map<String, String>>)request.getAttribute("verify");
for (Map<String, String> verify: results) {
{ 
    out.print(verify.get("aadhaar"));
    out.print(verify.get("scheme"));
    out.print(verify.get("beneficiaryID")+"$"+verify.get("name"));
}
%>

关于java - 如何将java中HashMap中表的多个值发送到jsp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17533016/

相关文章:

java - 哈希集如何避免重复

java - 按降序对 map 进行排序

java - 基于变量而不是常量定义一维数组的元素数量

mysql - 无法将 J2EE 连接到 MySQL

java - 我可以在同一个类的两个方法中使用@GET注释吗?

java - 如果输入的用户是简单用户或管理员,则隐藏 jsp 页面中的代码

javascript - 如何将字符串参数传递给 JavaScript 函数中的 Java 方法

java - 查找HashMap中存储的字符的索引值

java - 如何将整数列表从机器人测试用例传递到后端java函数或方法?

Java DAO 泛型