从servlet中的结果集中下拉jsp

时间:2013-06-19 11:30:54

标签: html sql jsp servlets html-select

我的问题是这个下拉列表无法生成,导致SQL异常

servlet中的我的SQL语句如下所示:

ResultSet banks = stmt.executeQuery("SELECT * FROM DTU06.BANKS");

我的下拉列表是在JSP文件中创建的,就像这样

<%  ResultSet banks = (ResultSet) request.getAttribute("banks"); %>
<select id="aNum" name="bank">
<%  while (banks.next()) {  %>
    <option value="${banks.getString(2)}">
        <%=banks.getString(1)%>
    </option>
<%  }   %>
</select>

我得到的错误代码如下:

  

DSRA9110E:ResultSet已关闭。

任何人都可以看到问题吗?

* EDIT1 我尝试在servlet中使用banks.next(),但我决定删除它。

2 个答案:

答案 0 :(得分:0)

ResultSet不可序列化。实现自己的MyResultSet实现ResultSet和Serializable,或者将结果集放入集合对象并将其传递到jsp页面。

答案 1 :(得分:0)

之后 ResultSet banks = stmt.executeQuery("SELECT * FROM DTU06.BANKS");
语句遍历您的ResultSetbanks.next()然后添加到某个集合

例如

public ArrayList getResult();
{
ArrayList list = new ArrayList();
//get connection here
ResultSet banks = stmt.executeQuery("SELECT * FROM DTU06.BANKS");
while(banks.next()){
list.add(banks.getString("columnIndex"));
}
return list
}

调用此方法然后遍历ArrayList,并在需要值时获取,即list.get("index")