对了说明一下,在jsp里不要出现类似while(rs.next())
{
out.print(" <tr> ");
out.print(" <td> "+"&nbsp;"+rs.getString(1)+" </td> ");
out.print(" <td> "+"&nbsp;"+rs.getString("NUM")+" </td> ");
out.print(" <td> "+"&nbsp;"+rs.getString("SEX")+" </td> ");
out.print(" <td> "+"&nbsp;"+rs.getString("TEL")+" </td> "+" </tr> ");
} 的语句!因为是要在javabean中得到结果的!

解决方案 »

  1.   

    当然可以了:
    1、javabean里写:
    List resultList = new ArrayList();
    while(rs.next()) 
    {
      Map rowMap = new HashMap();
      rowMap.put("username", rs.getString("username"));
      rowMap.put("sex", rs.getString("sex"));
      ... ...  resultList.add(rowMap);
    }return resultList;之后通过request.setAttribute("result", resultList);把结果集返回页面2、jsp里使用:
    List resultList = (List)request.getAttribute("result");
    之后循环这个resultList即可
      

  2.   

    我的javabean为:
    ------------------------selectbean---------------------
    package com.bean;
    import java.sql.*;
    import java.util.*;
    import javax.servlet.jsp.jstl.sql.*;
    public class selectBean {
    String DBDRIVER = "oracle.jdbc.driver.OracleDriver" ;
    String DBURL = "jdbc:oracle:thin:@localhost:1521:orcl" ;
    String DBUSER = "system" ;
    String DBPASSWORD = "zz47" ;
    Connection conn = null ;
    Statement stmt = null ;
    ResultSet rs=null;
    private List mylist=null;
    String name="查询结果是:";


    public String getName() {
    return name;
    } public void setName(String name) {
    this.name = name;
    } public List getMylist() {
    return mylist;
    } public void setMylist(List mylist) {
    this.mylist = mylist;
    } public ResultSet getSs() {
    return rs;
    } public void setSs(ResultSet rs) {
    this.rs = rs;
    } public Result setConnect() 
    {
    try
    {
    Class.forName(DBDRIVER) ;
    // 连接时必须填写用户名及密码
    conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
    // 创建表的SQL语句
    String sql = "SELECT * FROM STUDENT" ;
    stmt = conn.createStatement() ;
    rs=stmt.executeQuery(sql) ;
    }
    catch(Exception e)
    {
    }
    return ResultSupport.toResult(rs);
    }

    public List<String> resultConnect()
    {
    //rs=setConnect();
    mylist=new ArrayList();
    try{
    while(rs.next())  
    {
        Map   rowMap   =   new   HashMap();
        rowMap.put("NAME",   rs.getString("NAME"));
        rowMap.put("NUM",   rs.getString("NUM"));
        rowMap.put("SEX",   rs.getString("SEX"));
        rowMap.put("TEL",   rs.getString("TEL"));
        mylist.add(rowMap);
    }
    }
    catch(Exception e)
    {
    name="SQL异常";
    }

    return mylist;
    }

    public String query()
    {
    mylist=resultConnect();
    return "success";
    }

    }
    -----selectPage.jsp-------
    <%@ page language="java" pageEncoding="GBK"%>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %><%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <base href="<%=basePath%>"> <title>My JSF 'selectPage.jsp' starting page</title>

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    --></head>
      
    <body>
    <f:view>
    <h:form> 
    学生表查询:<br>
    <h:commandLink id="link" action="#{Sbean.query}" rendered="true" value="查询"></h:commandLink><br> 
     
    </h:form>
    </f:view>
    </body>
    </html>
    ----------resultPage.jsp----------
    <%@ page language="java" pageEncoding="GBK"%>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %><%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <base href="<%=basePath%>"> <title>My JSF 'resultPage.jsp' starting page</title>

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    --></head>
      
    <body>
    <f:view>
    <h:form> 
    <h:outputText value="#{Sbean.name}"/><br>
    <h:dataTable value="#{Sbean.mylist}" var="user">
    <h:column><h:outputText value="#{user.NAME}"/>
            </h:column>
            <h:column>
                <h:outputText value="#{user.NUM}"/>
            </h:column>
            <h:column>
                <h:outputText value="#{user.SEX}"/>
            </h:column>
            <h:column>
                <h:outputText value="#{user.TEL}"/>
            </h:column>
        </h:dataTable>
    </h:form>
    </f:view>
    </body>
    ---------faces-config.xml------------
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd"><faces-config >
    <managed-bean>
    <managed-bean-name>Sbean</managed-bean-name>
    <managed-bean-class>com.bean.selectBean</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
    <navigation-rule>
    <from-view-id>/selectPage.jsp</from-view-id>
    <navigation-case>
    <from-outcome>success</from-outcome>
    <to-view-id>/resultPage.jsp</to-view-id>
    </navigation-case>
    </navigation-rule></faces-config>结果输出SQL异常!!
    不知为什么哦!
      

  3.   

    把resultPage.jsp中的代码改成下边这样
    <h:form>   
    <h:outputText   value="#{Sbean.name}"/> <br> 
    <h:dataTable   value="#{Sbean.mylist}"   var="user"> 
                    <h:column> 
                            <h:outputText   value="#{user[0].NAME}"/> 
                    </h:column> 
                    <h:column> 
                            <h:outputText   value="#{user[0].NUM}"/> 
                    </h:column> 
                    <h:column> 
                            <h:outputText   value="#{user[0].SEX}"/> 
                    </h:column> 
                    <h:column> 
                            <h:outputText   value="#{user[0].TEL}"/> 
                    </h:column> 
            </h:dataTable> 
    </h:form> 
    得到的user是list类型的,user[0]才是Map
      

  4.   


    System.out.println(e.getMessage());看打印结果就知道了
      

  5.   

    1、javabean里写: 
    List   resultList   =   new   ArrayList(); 
    while(rs.next())   

        Map   rowMap   =   new   HashMap(); 
        rowMap.put("username",   rs.getString("username")); 
        rowMap.put("sex",   rs.getString("sex")); 
        ...   ...     resultList.add(rowMap); 
    } return   resultList; 之后通过request.setAttribute("result",   resultList);把结果集返回页面 
    ----------------------------------------------------------------------
    我以前写的时候是把一张表写了一个类,然后在循环中用set方法把字段值分别写进属性,然后list.add(类对象),请问这么用类做载体与map做载体哪个更合适些?