javabean问题?

xuwei214 2010-10-16 11:01:34
数据库study ,表user 字段:username password age qq ;
java代码:
package mybean;
import java.sql.*;
public class DBTest {
private String userName="root";
private String userPasswd="******";
private String dbname="study";
private String tableName="";

public DBTest(){
try{
Class.forName("com.mysql.jdbc.Driver");
}
catch(ClassNotFoundException e){
System.out.print(e.toString());
}
}

public void setTableName(String n){
this.tableName=n;
}
public StringBuffer getBuffer(){
StringBuffer buffer=new StringBuffer();
try{
String url="jdbc:mysql://localhost/"+dbname+"?useUnicode=true&characsetEncoding=UTF-8&user="+userName+"&password="+userPasswd;
Connection connection=DriverManager.getConnection(url);
Statement statement = connection.createStatement();

String sql="SELECT * FROM"+tableName;
ResultSet rs = statement.executeQuery(sql);

buffer.append("<table border=1>");
buffer.append("<TR><TD>序号</TD><TD>用户名</TD><TD>年龄</TD><TD>QQ</TD></TR>");
int i=0;
while(rs.next()){
i++;
String username=rs.getString("username");
int age=rs.getInt("age");
String qq=rs.getString("qq");
buffer.append("<TR><TD>"+i+"</TD><TD>"+username+"</TD><TD>"+age+"</TD><TD>"+qq+"</TD></TR>");
}
buffer.append("</table>");
rs.close();
statement.close();
connection.close();
}
catch(SQLException e){
System.out.print(e.toString());
}
return buffer;
}
}
jsp文件代码:
<%@ page contentType="text/html;charset=GBK" %>
<%@ page language="java" %>
<jsp:useBean id="test3" scope="page" class="mybean.DBTest" />
<jsp:setProperty name="test3" property="tableName" value="testbean" />
<html>
<head>
<title>the javabean test</title>
</head>
<body>
<center>
<jsp:getProperty name="test3" property="buffer"/>

</center>
</body>
</html>
运行后,页面一片空白,什么都不显示.请问是哪里出了问题?
谢谢!
...全文
109 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wuxiaoke2009 2010-10-18
只有定义好的属性名 才可以从javabean中读取出来
回复
zhangliang_88 2010-10-18
楼上真犀利! 调式一下! 在jsp用getBuffer()方法肯定可以得到buffer!
回复
学徙 2010-10-18
String sql="SELECT * FROM"+tableName;
FROM 与表之间好象没空格吧
回复
superdcj 2010-10-17
正解[Quote=引用 1 楼 voice1122 的回复:]
<jsp:getProperty name="test3" property="buffer"/>

buffer不是你的beans的属性呀。

得把
StringBuffer buffer;
加到你的DBTest类的变量声明中
[/Quote]
回复
voice1122 2010-10-17
<jsp:getProperty name="test3" property="buffer"/>
你要这样使用buffer,根据JAVABEANS的规则,buffer必须是DBTest的属性,你的
StringBuffer buffer=new StringBuffer();
只将buffer作为了getBuffer()方法的内部的变量(属性),因此buffer对类DBTest来说是不可见的,因此采用<jsp:getProperty name="test3" property="buffer"/>无法获取buffer的值。在你目前的编码来说,你可以直接调用getBuffer()方法来获取buffer,但不能通过<jsp:getProperty来获取buffer的值。
回复
xuwei214 2010-10-17
为什么还要变量定义呢.
这一句"StringBuffer buffer=new StringBuffer();"不就行了吗?
回复
voice1122 2010-10-16
<jsp:getProperty name="test3" property="buffer"/>

buffer不是你的beans的属性呀。

得把
StringBuffer buffer;
加到你的DBTest类的变量声明中
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2010-10-16 11:01
社区公告
暂无公告