救我~~~我不想活了~~

taoyi 2004-09-08 04:56:04
以下方法获得一个UserObject对象

代码


public UserObject get(int id) throws SQLException{
PreparedStatement stmt = conn.prepareStatement(SELECT_ID);
stmt.setInt(1, id);
ResultSet rs = stmt.executeQuery();
UserObject user = new UserObject();
if (rs.next()) {
user.setID(rs.getInt("ID"));
user.setLoginName(rs.getString("登录名"));
user.setName(rs.getString("姓名"));
user.setPassword(rs.getString("密码"));
user.setEmail(rs.getString("邮箱"));
user.setPhone(rs.getString("电话"));
user.setAddress(rs.getString("地址"));
user.setCompany(rs.getString("工作单位"));
user.setMemo(rs.getString("备注"));
}
return user;
}




以下main方法测试通过,能够得到正确的结果.

代码

public static void main(String[] args) throws SQLException{
UserOp uop = new UserOp();

UserObject user = uop.get(1);
System.out.println(user.getName());
System.out.println(user.getEmail());
}




为了便于代码和页面设计分离,,封装了一个标签,代码如下

代码

package cn.gov.mscredit.bean;

import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.*;
import cn.gov.mscredit.business.*;
import cn.gov.mscredit.entity.*;

public class DisplayUserBean extends TagSupport {
private int id = 0;

public void setID(int id) {
this.id = id;
}

public int doEndTag() throws JspException{
try {
UserOp op = new UserOp();
UserObject user = op.get(id);

String outStr = "<tr><td>姓名</td><td>";
outStr += user.getName();
outStr += "</td></tr><tr><td>邮箱</td><td><a href=mailto:";
outStr += user.getEmail();
outStr += ">" + user.getEmail() + "</a></td></tr><tr><td>电话</td><td>";
outStr += user.getPhone() + "</td></tr><tr><td>地址</td><td>";
outStr += user.getAddress() + "</td></tr><tr><td>单位</td><td>";
outStr += user.getCompany() + "</td></tr>";

this.pageContext.getOut().print(outStr);
}catch(Exception e) {}

return EVAL_PAGE;
}
}




标签定义如下:

代码

<tag>
<description>Display user information</description>
<name>DisplayUserBean</name>
<tag-class>cn.gov.mscredit.bean.DisplayUserBean</tag-class>
<body-content>empty</body-content>
<attribute>
<name>id</name>
<required>true</required>
</attribute>
</tag>





以下是页面文件代码:

代码

<%@ page language="java" contentType="text/html;charset=gb2312"%>
<%@ page import="cn.gov.mscredit.db.*"%>
<%@ page import="java.sql.*" %>
<%@ page import="cn.gov.mscredit.entity.*" %>
<%@ page import="cn.gov.mscredit.business.*" %>
<%@ taglib prefix="mscredit" uri="/WEB-INF/taglib/taglib.tld" %>
<!DOCTYPE HTML PUBLIC "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<title>测试页</title>
</head>
<body bgcolor="#FFFFFF">
<table border=1><mscredit:DisplayUserBean id="1"/></table>
</body>
</html>




浏览时未出现任何编译错误~~,但让人不解的是,最终的输出的userObject对象的所有属性值均为null~~~~WHY??????

老大,,,,,快救我吧~~~,我快要跳楼了~~~~~

环境:jdk1.4.2 + tomcat5.0


...全文
93 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
taoyi 2004-09-09
问题我已经解决了,,并不关中文字段的事~
回复
关注!
回复
zhongzuo1981 2004-09-08
数据库字段用中文中看不中用阿。
不改变字段的解决方法,学习……
回复
taoyi 2004-09-08
当然,,这个是没有错的,,,,其它都没有问题~~

就是页面中输出的信息全是null~~~~
回复
wan007 2004-09-08
rs.getString("登录名"));这个里面的"登录名"值应该是数据库中表对应的实际列名
回复
taoyi 2004-09-08
那如果在不能改变数据库字段的情况下,有没有方法可以解决??如何解决?

谢谢~
回复
zhongzuo1981 2004-09-08
以前我也遇到过,楼上正解
回复
pdw2009 2004-09-08
我以为楼主想不开要跳楼呢。。。看来应该没事了
回复
TinyJimmy 2004-09-08
你的中文字段名问题, 改英文字段名.
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-09-08 04:56
社区公告
暂无公告