高人指点??

xingshen100 2013-10-25 01:15:07
为什么我的显示表单用户名是空的呢?密码列显示出来了。
user的属性用户名就是name

数据库里面两列都有数据。请高人指点可能的原因???

<c:forEach var="u" items="${list}">
<tr>
<td>${u.name}</td><!--这列显示为空-->
<td>${u.password}</td><!--这列能显示-->
<td>
<a href="#">为用户授权</a>
<a href="#">修改用户</a>
<a href="#">删除用户</a>
</td>
</tr>
</c:forEach>
...全文
167 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
xingshen100 2013-10-25
  • 打赏
  • 举报
回复
我知道了。 想起来实体user的用户名和usr表的列名不一致所造成的。因为BeanListHandler()原理是通过反射,获取字段名,将表中对应列名的数据存放到字段中的。把实体的名字改成对应的表的列名就可以了。 谢谢大家
tony4geek 2013-10-25
  • 打赏
  • 举报
回复
QueryRunner.html query(String sql, ResultSetHandler<T> rsh) Executes the given SELECT SQL without any replacement parameters. 原来里的 是 ResultSetHandler 你用的是 BeanListHandler
zhuweisyyc 2013-10-25
  • 打赏
  • 举报
回复
引用 13 楼 xingshen100 的回复:
[quote=引用 12 楼 zhuweisyyc 的回复:] [quote=引用 11 楼 xingshen100 的回复:] [quote=引用 9 楼 zhuweisyyc 的回复:] 问题在BeanListHandler,你debug下就知道结果了。
会是什么问题呢?这里怎么debug呢,不会。。[/quote] web起项目的时候debug方式启动,在你想要停顿的地方打上断点,右键,toggle Break point。 http://www.itzhai.com/java-web-development-using-the-eclipse-debug-debugging-process-to-use.html[/quote] 对name是空的。为什么会空呢? [/quote] 你都已经debug到这里了,为什么不自己再想想呢,看下在哪个地方给user赋值了。
tony4geek 2013-10-25
  • 打赏
  • 举报
回复
String sql="select name,password from user";
return (List<User>) qr.query(sql,new BeanListHandler(User.class));

//User.class
private String name;

	private String password;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}
xingshen100 2013-10-25
  • 打赏
  • 举报
回复
引用 12 楼 zhuweisyyc 的回复:
[quote=引用 11 楼 xingshen100 的回复:]
[quote=引用 9 楼 zhuweisyyc 的回复:]
问题在BeanListHandler,你debug下就知道结果了。

会是什么问题呢?这里怎么debug呢,不会。。[/quote]
web起项目的时候debug方式启动,在你想要停顿的地方打上断点,右键,toggle Break point。
http://www.itzhai.com/java-web-development-using-the-eclipse-debug-debugging-process-to-use.html[/quote]
对name是空的。为什么会空呢?
zhuweisyyc 2013-10-25
  • 打赏
  • 举报
回复
引用 11 楼 xingshen100 的回复:
[quote=引用 9 楼 zhuweisyyc 的回复:] 问题在BeanListHandler,你debug下就知道结果了。
会是什么问题呢?这里怎么debug呢,不会。。[/quote] web起项目的时候debug方式启动,在你想要停顿的地方打上断点,右键,toggle Break point。 http://www.itzhai.com/java-web-development-using-the-eclipse-debug-debugging-process-to-use.html
xingshen100 2013-10-25
  • 打赏
  • 举报
回复
引用 9 楼 zhuweisyyc 的回复:
问题在BeanListHandler,你debug下就知道结果了。
会是什么问题呢?这里怎么debug呢,不会。。
xingshen100 2013-10-25
  • 打赏
  • 举报
回复
引用 6 楼 rui888 的回复:
怎么不用泛型。你打印看看可以不
for (int i = 0; i < list.size(); i++) {
		User o = (User) list.get(i);
		System.out.println(o.getName()+"test name ====");
}
嗯 名字null,密码有值。
zhuweisyyc 2013-10-25
  • 打赏
  • 举报
回复
问题在BeanListHandler,你debug下就知道结果了。
xingshen100 2013-10-25
  • 打赏
  • 举报
回复
service的getAll()调用dao的getAll();
xingshen100 2013-10-25
  • 打赏
  • 举报
回复
引用 5 楼 zhuweisyyc 的回复:
List list=service.getAll(); service的实现贴出来。
//得到所有用户
	public List<User> getAll(){
		return udao.getAll();
	}

	//得到所有用户
	public List<User> getAll(){
		try {
			QueryRunner qr=new QueryRunner(JdbcUtils.getDataSource());
			String sql="select * from user";
			return (List<User>) qr.query(sql,new BeanListHandler(User.class));
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}
tony4geek 2013-10-25
  • 打赏
  • 举报
回复
怎么不用泛型。你打印看看可以不
for (int i = 0; i < list.size(); i++) {
		User o = (User) list.get(i);
		System.out.println(o.getName()+"test name ====");
}
zhuweisyyc 2013-10-25
  • 打赏
  • 举报
回复
List list=service.getAll(); service的实现贴出来。
xingshen100 2013-10-25
  • 打赏
  • 举报
回复
引用 3 楼 rui888 的回复:
赋值的代码贴吧。不然真看不出来。
ListUserServlet

package cn.itcast.web.controller;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.itcast.service.SecurityService;

public class ListUserServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		try {
			SecurityService service=new SecurityService();
			List list=service.getAll();//获取所有user
			request.setAttribute("list",list);
			request.getRequestDispatcher("/jsp/listuser.jsp").forward(request,response);
		} catch (RuntimeException e) {
			throw new RuntimeException(e);
		}
		
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);

	}

}

listuser.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
  <head>

    
    <title>列出所有用户页面</title>

  </head>
  
  <body style="text-align:center;">
    <table width="70%">
    	<tr>
    		<td align="right">
    			<a href="${pageContext.request.contextPath}/jsp/adduser.jsp">添加用户</a>
    		</td>
    	</tr>
    </table>
    <table frame="border" width="70%">
    		<tr>
    		<td>用户名称</td>
    		<td>用户密码</td>
    		<td>操作</td>
    	</tr>
    	
    	<c:forEach var="u" items="${list}">
    	<tr>
    		   <td>${u.name}</td>
			<td>${u.password}</td>
			<td>
				<a href="${pageContext.request.contextPath}/servlet/AddUserRoleUIServlet?user_id=${user.id }">为用户授权</a>
				<a href="#">修改用户</a>
				<a href="#">删除用户</a>
			</td>    	
    	</tr>
    	</c:forEach>
    </table>	
  </body>
</html>

tony4geek 2013-10-25
  • 打赏
  • 举报
回复
赋值的代码贴吧。不然真看不出来。
xingshen100 2013-10-25
  • 打赏
  • 举报
回复
引用 1 楼 rui888 的回复:
name 有没有赋值 有没有对应的 set/get 方法。
数据库中的就是程序操作输入的,所以确定赋值了。get set方法都有。
tony4geek 2013-10-25
  • 打赏
  • 举报
回复
name 有没有赋值 有没有对应的 set/get 方法。

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧