【问题标题】:populate selectbox from mysqldatabase从 mysql 数据库中填充选择框
【发布时间】:2013-03-04 23:30:54
【问题描述】:

我需要从数据库中填充选择框。与数据库的连接成功,我可以检索并插入数据库。我尝试了以下代码来填充选择框。但它显示错误“迭代器无法解析为类型”。 用于从数据库中检索的 Java 代码是,

 package servicescheduler.pack;
 import java.text.*;
 import java.util.*;
 import java.sql.*; 

 public class listObject 
{
   static Connection currentCon = null;
String sql="select * from center_point_map where service_center='Radiology';";
public List getlist()
{
    ArrayList<String> list=new ArrayList<String>();
    try
    {
        currentCon = ConnectionManager.getconnection(); 
    }
    catch (Exception ex)
    { 
        System.out.println(" An Exception has occurred! " + ex);      
    }
    if(currentCon!=null)
    {
        System.out.println("You made it, take control your database now!");
        try
        {
            PreparedStatement prest = currentCon.prepareStatement(sql);
             ResultSet rs = prest.executeQuery();
             while(rs.next()) {
                    list.add(rs.getString(1));
                }
             System.out.println(list.get(0));
             prest.close();
             rs.close();
             return list;

        }
        catch (SQLException s)
        {
              System.out.println("SQL statement is not executed!"+s);

        }

        catch (Exception e)
        {
              e.printStackTrace();

        }
      }

      return list;
  }

}

jsp代码是

      <%@page import="servicescheduler.pack.listObject"%>
      <%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org    /TR/html4 /loose.dtd">
  <html>
 <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   <title>Insert title here</title>
</head>
<body>
<select>
<%
Iterator it = new listObject().getlist();
while(it.hasNext()) {
    out.write("<option value=\""+ it.getFieldA()+ "\">"+ it.getFieldB() +"\">");
}
%>
</select>
</body>
</html>

【问题讨论】:

标签: java mysql eclipse jsp


【解决方案1】:

我认为问题在于您将 List 分配给您在 jsp 代码中创建的迭代器。看看吧。

因此代码应该是:

Iterator it = new listObject().getlist().iterator();

【讨论】:

    【解决方案2】:

    由于import语句导致的错误。您还需要在jsp中导入Iterator。默认包是java.lang。但是这里我们使用的是java.util.*中可用的Iterator。 所以需要先导入java.util包。

    <%@page import="java.util.*"%>
    

    并使用它

    Iterator it = new listObject().getlist().iterator();
    

    【讨论】:

      【解决方案3】:

      你的jsp代码有两个错误点

      • 第一个:无法从List转换为Iterator。应该是Iterator it = new listObject().getlist().iterator();

      • 第二个:在while循环中必须使用it.next()来改变指针位置到next

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-07
        • 2016-04-23
        • 2018-09-11
        • 1970-01-01
        • 1970-01-01
        • 2017-01-18
        • 2016-05-27
        相关资源
        最近更新 更多