数据库查询不填充组合框,为什么呢?

我已经在这一段时间,尝试了不同的例子(包括一些,我发现这里),并试图使其适应我的需要。

我试图用一个数据库查询的servlet来填充组合框在创建的结果HTML表单。 虽然这一切编译和页面会弹出一个下拉框,没有什么在框中可供选择,它告诉我,什么是错的我如何传递变量。

我已经基本上变窄我的方法下为两个,但得到来自两个相同的结果。
有人可以看看,看看,并给我一个线索?

out.print(`"<tr><td>SoldWhich Home ID: `</td><td>"`); //Query table for results to go into option box ResultSet rs1 = null; Statement stmt1 = null; Connection con1 = null; try { Class.forName(DRIVER); con1 = DriverManager.getConnection(URL, username, password); String sql = "SELECT home_id FROM Home"; stmt1 = con1.createStatement(); rs1 = stmt1.executeQuery(sql); ArrayList<String> soldWhich = new ArrayList<String>(); List<String> soldWhich = new ArrayList<String>(); while (rs1.next()){ for (int i=1;i<=rs1.getRow(); i++ ){ String value = rs1.getString(1); soldWhich.add(value); } } } catch(Exception e){} //Begin option box out.print(`"<select width=\"150px\" align=\"right\" name=\"soldWhichBox\">"`); String soldWhich[] = (String[])req.getAttribute("home_id"); //populate with query output try{ for(String sh : soldWhich){ out.print(`"<option width=\"150px\" align=\"right\" value=\""+sh+"\">"+sh+"</option>"`); } rs1.close(); con1.close(); } catch (Exception e){} out.print(`"</select>"`); out.print(`"</td></tr>"`);

和另一种方法:

out.print(`"<tr><td>SoldWhich Home ID: </td><td>"`); //Query table for results to go into option box ResultSet rs1 = null; Statement stmt1 = null; Connection con1 = null; try{ Class.forName(DRIVER); con1 = DriverManager.getConnection(URL, username, password); String sql = "SELECT home_id FROM Home ORDER BY home_id"; stmt1 = con1.createStatement(); rs1 = stmt1.executeQuery(sql); List<String> soldWhich = new ArrayList<String>(); while (rs1.next()){ soldWhich.add(rs1.getString(1)); } } catch(Exception e){} //Begin option box out.print(`"<select width=\"150px\" align=\"right\" name=\"soldWhichBox\">"`); String soldWhich[] = (String [])req.getAttribute("home_id"); //populate with query output try{ for(String sh : soldWhich){ out.print(`"<option width=\"150px\" align=\"right\" value=\""+sh+"\">"+sh+"</option>"`); } rs1.close(); con1.close(); } catch (Exception e){} out.print(`"</select>"`); out.print(`"</td></tr>"`);

--------------解决方案-------------

你在哪里设置“home_id”请求属性,并干嘛还要设置吗? 我想你应该拿出下面的代码行,看看它是否工作。 修改代码以这一点。

List<String> soldWhich = null;
try {
Class.forName(DRIVER);
con1 = DriverManager.getConnection(URL, username, password);
String sql = "SELECT home_id FROM Home";
stmt1 = con1.createStatement();
rs1 = stmt1.executeQuery(sql);
soldWhich = new ArrayList<String>();

while (rs1.next()){
for (int i=1;i<=rs1.getRow(); i++ ){
String value = rs1.getString(1);
soldWhich.add(value);
}
}
}

我想,你是不是真正得到的值(SH)在“为(字符串SH:soldWhich)”循环。 你可以尝试打印在一个简单的表中的值只是为了看看,如果你真正得到的数据? 另外你为什么不使用JSTL来执行这项任务? 而你的catch块不记录任何错误,无论是在情况下,你实际上得到某种错误,将被忽视的。

分类:java的 时间:2015-03-14 人气:0
本文关键词: HTML,JAVA,小服务程序
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.296 (s). 10 q(s)