对了说明一下,在jsp里不要出现类似while(rs.next())
{
out.print(" <tr> ");
out.print(" <td> "+" "+rs.getString(1)+" </td> ");
out.print(" <td> "+" "+rs.getString("NUM")+" </td> ");
out.print(" <td> "+" "+rs.getString("SEX")+" </td> ");
out.print(" <td> "+" "+rs.getString("TEL")+" </td> "+" </tr> ");
} 的语句!因为是要在javabean中得到结果的!
{
out.print(" <tr> ");
out.print(" <td> "+" "+rs.getString(1)+" </td> ");
out.print(" <td> "+" "+rs.getString("NUM")+" </td> ");
out.print(" <td> "+" "+rs.getString("SEX")+" </td> ");
out.print(" <td> "+" "+rs.getString("TEL")+" </td> "+" </tr> ");
} 的语句!因为是要在javabean中得到结果的!
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即可
------------------------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异常!!
不知为什么哦!
<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
System.out.println(e.getMessage());看打印结果就知道了
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做载体哪个更合适些?