最近,在写一段用户的代码,要求使用springmvc, RowMapper,jdbcTemplate的技术,我的代码段如下:
jsp页面
users.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<table>
<c:if test="${not empty userlist}">
<c:forEach var="s" items="${userlist}" varStatus="status">
<thead>
<tr><td>用户姓名</td><td>用户密码</td></tr>
</thead>
<tbody>
<tr><td>${s.user_name}</td><td>${s.user_pwd}</td></tr>
</tbody>
</c:forEach>
</c:if>
</table>
</body>
</html>
HelloController.java
@RequestMapping("/howareyou.do")
public String getUserbyUserId(Model model,HttpServletRequest req){
Long userid=(long) Integer.parseInt(req.getParameter("user_id"));
List<User> users = userService.findAllByUserId(userid);
model.addAttribute("userlist",users);
return "users";
}
UserServiceImplement.java
@Override
public List<User> findAllByUserId(Long user_id) {
// TODO Auto-generated method stub
String sql = "select * from user where user_id = ?";
Object[] params = new Object[] {user_id};
BeanPropertyRowMapper<User> UserRowMapper = new BeanPropertyRowMapper<User>(User.class);
List<User> users = null;
/**
* 使用接口实现类
*/
users = jdbcTemplate.query(sql, params, UserRowMapper);
/**
* 使用匿名内部类
* 如果UserRowMapper类只使用一次,单独为其创建一个类多余,可以使用匿名类
* 省略了书写一个实现类
*/
users = jdbcTemplate.query(sql, params,
new RowMapper<User>() {
public User mapRow(ResultSet rs, int rowNum) throws SQLException {
User user = new User();
/*user.setUser_id(Long.parseLong(String.valueOf(rs.getInt("user_id"))));*/
user.setUser_name(rs.getString(3));
user.setUser_pwd(rs.getString(2));
System.out.println("user_name is"+user.getUser_name());
System.out.println("user_pwd is"+user.getUser_pwd());
System.out.println("user_id is"+user.getUser_id());
return user;
}
});
return (users != null && users.size() > 0) ? users : null;
}
我用断点进入,发现在serviceImplement层,users是有值的,分别取到一个用户user的username和user_pwd的2个属性,可是到了jsp层,为何出现的是com.frame.model.User@123456的输出结果?而且,页面没有输出值。请教,应该如何写才好?谢谢!