RegisterBean.java:如下
package datatabledemo;public class RegisterBean {
private static String name;
private static String pwd; public RegisterBean(){
}
public RegisterBean(String name,String pwd) {
this.name=name;
this.pwd=pwd;
} public void setName(String name) {
this.name = name;
} public void setPwd(String pwd) {
this.pwd = pwd;
} public String getName() {
return name;
} public String getPwd() {
return pwd;
}
ConnectionDAO.java:如下
package datatabledemo;import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.Connection;public class ConnectionDAO {
public ConnectionDAO() {
}
private static String driver = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/db_timbering";
private static String user = "root";
private static String pwd = "11111111";
public static Connection getConnection() {
Connection con = null;
try {
Class.forName(driver);
con = DriverManager.getConnection(url, user, pwd);
} catch (Exception ex) {
ex.printStackTrace();
}
return con;
}
public static void closeConnection(Connection con) {
try {
if (con != null) {
con.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static void closeStatement(Statement st) {
try {
if (st != null) {
st.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static void closeResultSet(ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
UserBean.java如下
package datatabledemo;
import java.sql.*;
import java.util.ArrayList;public class UserBean {
public UserBean() {
}
private Connection con = null;
private Statement st = null;
private ResultSet rs = null;
ConnectionDAO cd=new ConnectionDAO();
public ArrayList getSearchManager(){
ArrayList list = new ArrayList();
String sql = "select * from user";
try{
con = cd.getConnection();
st = con.createStatement();
rs = st.executeQuery(sql);
while(rs.next()){
String name=rs.getString("name");
String pwd=rs.getString("password");
RegisterBean rb=new RegisterBean(name,pwd);
list.add(rb);
}
}catch(SQLException e){
e.printStackTrace();
}finally{
cd.closeResultSet(rs);
cd.closeStatement(st);
cd.closeConnection(con);
}
return list;
}
}
faces-config文件如下
<faces-config xmlns="http://java.sun.com/JSF/Configuration">
<managed-bean>
<managed-bean-name>bean1</managed-bean-name>
<managed-bean-class>datatabledemo.UserBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>bean2</managed-bean-name>
<managed-bean-class>datatabledemo.RegisterBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
</faces-config>
JSP页面如下:
<%@page contentType="text/html; charset=GBK"%>
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<html>
<head>
<title>jsp2</title>
</head>
<body bgcolor="#ffffff">
<f:view>
<h:form>
<h:dataTable var="Register" value="#{bean1.searchManager}">
<h:column>
<h:outputText value="#{bean2.name}"/>
</h:column>
<h:column>
<h:outputText value="#{bean2.pwd}"/>
</h:column>
</h:dataTable>
</h:form>
</f:view>
</body>
</html>问题:我的数据库的user表中的数据结构是这样的 name password
aaa 111
bbb 222我用JSF中的<h:dataTable>显示出来,但是在我的jsp页面显示结果却是这样的:
bbb 222
bbb 222而不是我要的 aaa 111 这样的结果
bbb 222
后来换个表查询发现显示的数据行数是正确的,但是内容总是重复显示ArrayList中的最后一条数据!请帮我看看我的哪里写错了导致总是重复显示一条数据!
另外还有,在数据模型中的属性如 private static String name;
private static String pwd;
去掉static就在<h:dataTable>连显示都不显示了,加了才显示是为什么?
package datatabledemo;public class RegisterBean {
private static String name;
private static String pwd; public RegisterBean(){
}
public RegisterBean(String name,String pwd) {
this.name=name;
this.pwd=pwd;
} public void setName(String name) {
this.name = name;
} public void setPwd(String pwd) {
this.pwd = pwd;
} public String getName() {
return name;
} public String getPwd() {
return pwd;
}
ConnectionDAO.java:如下
package datatabledemo;import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.Connection;public class ConnectionDAO {
public ConnectionDAO() {
}
private static String driver = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/db_timbering";
private static String user = "root";
private static String pwd = "11111111";
public static Connection getConnection() {
Connection con = null;
try {
Class.forName(driver);
con = DriverManager.getConnection(url, user, pwd);
} catch (Exception ex) {
ex.printStackTrace();
}
return con;
}
public static void closeConnection(Connection con) {
try {
if (con != null) {
con.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static void closeStatement(Statement st) {
try {
if (st != null) {
st.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static void closeResultSet(ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
UserBean.java如下
package datatabledemo;
import java.sql.*;
import java.util.ArrayList;public class UserBean {
public UserBean() {
}
private Connection con = null;
private Statement st = null;
private ResultSet rs = null;
ConnectionDAO cd=new ConnectionDAO();
public ArrayList getSearchManager(){
ArrayList list = new ArrayList();
String sql = "select * from user";
try{
con = cd.getConnection();
st = con.createStatement();
rs = st.executeQuery(sql);
while(rs.next()){
String name=rs.getString("name");
String pwd=rs.getString("password");
RegisterBean rb=new RegisterBean(name,pwd);
list.add(rb);
}
}catch(SQLException e){
e.printStackTrace();
}finally{
cd.closeResultSet(rs);
cd.closeStatement(st);
cd.closeConnection(con);
}
return list;
}
}
faces-config文件如下
<faces-config xmlns="http://java.sun.com/JSF/Configuration">
<managed-bean>
<managed-bean-name>bean1</managed-bean-name>
<managed-bean-class>datatabledemo.UserBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>bean2</managed-bean-name>
<managed-bean-class>datatabledemo.RegisterBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
</faces-config>
JSP页面如下:
<%@page contentType="text/html; charset=GBK"%>
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<html>
<head>
<title>jsp2</title>
</head>
<body bgcolor="#ffffff">
<f:view>
<h:form>
<h:dataTable var="Register" value="#{bean1.searchManager}">
<h:column>
<h:outputText value="#{bean2.name}"/>
</h:column>
<h:column>
<h:outputText value="#{bean2.pwd}"/>
</h:column>
</h:dataTable>
</h:form>
</f:view>
</body>
</html>问题:我的数据库的user表中的数据结构是这样的 name password
aaa 111
bbb 222我用JSF中的<h:dataTable>显示出来,但是在我的jsp页面显示结果却是这样的:
bbb 222
bbb 222而不是我要的 aaa 111 这样的结果
bbb 222
后来换个表查询发现显示的数据行数是正确的,但是内容总是重复显示ArrayList中的最后一条数据!请帮我看看我的哪里写错了导致总是重复显示一条数据!
另外还有,在数据模型中的属性如 private static String name;
private static String pwd;
去掉static就在<h:dataTable>连显示都不显示了,加了才显示是为什么?
解决方案 »
- 使用jsp控制器servlet直接调用xfire框架构建的 WebService怎么不行?
- JSP网页空格
- JSP中如何把动态页面转换为静态页面
- 关于struts2+spring+hibernate的问题
- 符号转换
- 嫠我!帮我看看!!!!
- 【急求】SPRING配置DATASOURCE,tomcat启动无错,weblogic启动报错
- 在不架FTP的情况下,如何下实现文本文件下栽 请各位老菜指导
- 用jsp调用javabean,对所调用的bean在路径上用作什么样的设定呢?
- 如果想以web方式实现体育彩票销售应如何设计如何实现?技术上有困难吗?
- 都怎么了????????????????????????????????????????????????????????????????????
- jsf上传文件时,将form的enctype属性设为MULTIPART/FORM-DATA,action事件的代码就不执行
<h:column>
<h:outputText value= "#{bean2.name} "/>
</h:column>
<h:column>
<h:outputText value= "#{bean2.pwd} "/>
</h:column>
</h:dataTable>
这的问题
h:dataTable绑定的是一个数组或list 所以bean1.searchManager应该是数组或者list 不用担心转换的问题
它自己会帮你转换
主要的问题出在<h:outputText value= "#{bean2.name} "/>这里
应该改为<h:outputText value= "#{Register .name} "/> 也就是说是你定义的名字 实际上h:dataTable的作用我的理解是自动帮你转换数组或者list 不需要你一个一个取出来显示ps:你的分数貌似给的少了点 不厚道