我想从 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/