bean部分代码如下:
public Vector getData(String sql)
     {
      Vector vect=new Vector();
      try
      {   Connection conn=ConnBean.getConnection();
      PreparedStatement pstmt=conn.prepareStatement(sql);
      ResultSet rs=pstmt.executeQuery();
      ResultSetMetaData rsmd=rs.getMetaData();
   int cols=rsmd.getColumnCount();
      while(rs.next())
      {
     Hashtable hash=new Hashtable();
     for(int i=1;i<=cols;i++)
     {
     String field=rsmd.getColumnClassName(i);
     String value=rs.getString(i);
     hash.put(field,value);
     }
     vect.add(hash);
      }
      }catch(SQLException sqle){}
      return vect;
     }
jsp部分页面如下:
<%
String sql="select * from book";
Vector vect=(Vector)editBook.getData(sql);
for(int i=1;i<vect.size();i++)
{
Hashtable hash=(Hashtable)vect.get(i);
String[] str=new String[4];
        str[0]=(String)hash.get("bookId");
str[1]=(String)hash.get("bookName");
str[2]=(String)hash.get("publisher");
str[3]=(String)hash.get("price");
%>
<TABLE  width="100%" align="center" border=1 brcolor=99ccff cellspacing="0" cellpadding="0" bordercolordark="#000000" bordercolorlight="#CCCC99">
<tr><td bgcolor="#CCCC99"><font size=2>id:</font></td>
<td colspan=3><%=str[0]%></td></tr>
<tr><td bgcolor="#CCCC99"><font size=2>name:</font></td>
<td><%=str[1]%></td></tr>
<tr><td bgcolor="#CCCC99"><font size=2>pb:</font></td>
<td>
<%=str[2]%>
</td></tr>
<tr><td bgcolor="#CCCC99"><font size=2>price:</font></td><td colspan=3>
<%=str[3]%>
</td></tr>
</table>
<%
}
%>
显示结果老是NULL,请问问题是处在哪里啊,谢谢了

解决方案 »

  1.   

    页面和bean都能读出来,没有错误的提示贴,我的页面是耀显示出那4个参数来,但显示的都是NULL
      

  2.   

    再顶!jsp部分页面如下: 
    <% 
    String sql="select * from book"; 
    Vector vect=(Vector)editBook.getData(sql); 
    for(int i=1;i <vect.size();i++) 

    Hashtable hash=(Hashtable)vect.get(i); 
    String[] str=new String[4]; 
    str[0]=(String)hash.get("bookId"); 
    str[1]=(String)hash.get("bookName"); 
    str[2]=(String)hash.get("publisher"); 
    str[3]=(String)hash.get("price"); 
    %> 
    <TABLE> 
    <tr> <td> id: </td> <td> <%=str[0]%> </td> </tr> 
    <tr> <td> name: </td> <td> <%=str[1]%> </td> </tr> 
    <tr> <td> pb: </td> <td> <%=str[2]%> </td> </tr> 
    <tr> <td>price: </td> <td> <%=str[3]%> </td> </tr> 
    </table> 
    <% 

    %> 
      

  3.   

    晕,你单步调试一下,看你的bean里
    String value=rs.getString(i); 
    这里取到值没?sql用select * from book的时候
      

  4.   

    for(int i=1;i  <vect.size();i++)  
    这里的i的初始值是否要从0开始呀,再试试
      

  5.   

    LZ可以用System.out.println()一点点试
    在代码中插入,看看是哪步除了错!!
      

  6.   

    for(int i=1;i <vect.size();i++) 
    =》
    for(int i=0;i <vect.size();i++) 
    还有,你确认你的字段是正确的???String field=rsmd.getColumnClassName(i); 
    System.out.println("field="+field); // 打印出来看看吧!
    String value=rs.getString(i); 
      

  7.   

    大家好
    问题是处在这里
      for(int i=1;i <=cols;i++) 
         { 
         String field=rsmd.getColumnClassName(i); 
         String value=rs.getString(i); 
         hash.put(field,value); 
         } 
         vect.add(hash)红色的地方应该是:
    String field=rsmd.getColumn(i); 很不应该出现的错误
    rsmd.getColumnClassName(i)打印出来的是字段的数据类型,rsmd.getColumn(i)才是字段的名字