关于如何显示的问题,虽然很简单,但许久没用了,也不是很容易想到,区别是把数据库查询出来的数据先放入到相应的bean中,然后将bean通过泛型放入list里面;我以往的开发并没有太多的将bean应用到这个地方,昨天张广问我的时候我也束手无策,经过很长时间的调试才想到这些办法。许多东西没用就会生疏,直至遗忘,这一点还要感谢广量哈~~
一 在dao层查找出来所有的数据
public List<User> findall() throws Exception{
List<User> userList=new ArrayList<User>();
try {
conn=Dbinit.getConn();
pstmt=conn.prepareStatement("select * from user");
rs=pstmt.executeQuery();
while (rs!=null && rs.next()) {
User user=new User();
user.setId(rs.getLong("id")); //读取数据库里的值保存到对象
user.setname(rs.getString("name"));
user.setNickname(rs.getString("Nickname"));
user.setBirthday(rs.getString("Birthday"));
user.setSex(rs.getString("Sex"));
user.setAge(rs.getString("Age"));
userList.add(user); //将对象添加保存到列表
}
return userList;
} catch (RuntimeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}finally{
Dbinit.close(rs, pstmt, conn);
}
二 servlet层里面的代码
try {
List<User> list=Userdao.findall();
request.setAttribute("userlist", list);
request.getRequestDispatcher("/admin/userlist.jsp").forward(request,response);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
三 前台userlist.jsp列表页面
<table>
<%
//循环显示数据
List<User> userlist=(List)request.getAttribute("userlist");
if(Userlist.size()!=0){
for(int i=0;i<userlist.size();i++){
pageContext.setAttribute("User",userlist.get(i));
%>
<tr>
<td>${User.id }</td>
<td>${User.name }</td>
<td>${User.Nickname }</td>
<td>${User.Birthday }</td>
<td>${User.Sex }</td>
</tr>
<%
}
}else{
..........
}
%>
</table>
补充: 还有另一种方法,可以直接用JSP表达式
<table>
<%
//循环显示数据
List<User> userlist=(List)request.getAttribute("userlist");
if(Userlist.size()!=0){
for(int i=0;i<userlist.size();i++){
User user =new User();
user = userlist.get(i);
%>
<tr>
<td><%=userlist.get(i).getId() %></td>
<td><%=userlist.get(i).getname() %></td>
<td><%=userlist.get(i).getNickname() %></td>
<td><%=userlist.get(i).getBirthday()%></td>
<td><%=userlist.get(i).getSex()%></td>
</tr>
<%
}
}else{
........
}
%>
</table>