我的问题是,由于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 1我尝试在servlet中使用banks.next(),但我决定删除它。
发布于 2013-06-19 11:56:16
ResultSet是不可序列化的。要么实现您自己的MyResultSet来实现ResultSet和Serializable,要么将您的结果集放到一个集合对象中,并将其传递到jsp页面。
发布于 2013-06-19 12:07:33
之后
ResultSet banks = stmt.executeQuery("SELECT * FROM DTU06.BANKS");
语句遍历ResultSet,即banks.next(),然后添加到某些集合中。
e.g
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")
https://stackoverflow.com/questions/17190066
复制相似问题