您的位置:首页 > 数据库

JSP中如何 循环显示 数据库中的数据到list.jsp页面 (转载)

2013-05-03 20:58 676 查看
一 首先在dao层写findall方法,返回值为 要循环对象 的队列列表。查找出来所有的数据

public List<News> findall() throws Exception{

List<News> newsList=new ArrayList<News>();

try {

conn=Dbinit.getConn();

pstmt=conn.prepareStatement("select * from news");

rs=pstmt.executeQuery();

while (rs!=null && rs.next()) {

News news=new News();

//此处新建对象一定要放在循环里面,不能放在while外面,不然只能循环出最后一条数据

//我昨天就因为这个错误,花费了一天的时间呀,而且也不能初始化为null,不然取不到值的

news.setId(rs.getLong("id")); //读取数据库里的值保存到对象

news.setTitle(rs.getString("title"));

news.setZuozhe(rs.getString("zuozhe"));

news.setLaiyuan(rs.getString("laiyuan"));

news.setContent(rs.getString("content"));

news.setFabutime(rs.getString("fabutime"));

newsList.add(news); //将对象添加保存到列表

}

return newsList;

} catch (RuntimeException e) {

// TODO Auto-generated catch block

e.printStackTrace();

return null;

}finally{

Dbinit.close(rs, pstmt, conn);

}

二 servlet层里面的代码

try {

List<News> list=newsdao.findall(); //执行dao方法

request.setAttribute("newslist", list); //保存到request方便前台调用

request.getRequestDispatcher("/admin/list.jsp").forward(request,response);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

三 前台list.jsp列表页面

<table border="1" cellspacing="0" cellpadding="0" width="100%" style="align:center;">

<tr bgcolor="ff9900" style="font-weight:bold;">

<th>新闻编号</th><th>新闻标题</th><th>发布人</th><th>来源</th><th>发布时间</th><th width="100" colspan="2">操作</th></tr>

<%

//循环显示数据

List<News> newslist=(List)request.getAttribute("newslist"); // 取request里面的对象队列

if(newslist.size()!=0){

for(int i=0;i<newslist.size();i++){

pageContext.setAttribute("news",newslist.get(i));

//保存到页面pageContext里面方便下面进行EL表达式调用

%>

<tr>

<td>${news.id }</td> //EL表达式调用

<td>${news.title }</td>

<td>${news.zuozhe }</td>

<td>${news.laiyuan }</td>

<td>${news.content }</td>

<td><a href="admin/news.do?method=edit&id=${news.id }">修改</a> | <a href="admin/news.do?method=remove&id=${news.id }" onclick='return confirm("确定要删除吗?")'

>删除</a></td>

</tr>

<%

}

}else{

%>

<tr><td colspan="6">数据库中没有数据!</td></tr>

<%

}

%>

</table>

补充: 当然还有别一种方法,就是直接用JSP表达式

<table border="1" cellspacing="0" cellpadding="0" width="100%" style="align:center;">

<tr bgcolor="ff9900" style="font-weight:bold;">

<th>新闻编号</th><th>新闻标题</th><th>发布人</th><th>来源</th><th>发布时间</th><th width="100" colspan="2">操作</th></tr>

<%

//循环显示数据

List<News> newslist=(List)request.getAttribute("newslist"); //
取request里面的对象队列

if(newslist.size()!=0){

for(int i=0;i<newslist.size();i++){

News news =new News(); //新建对象

news = newslist.get(i); //每循环一次后将此时的值保存到对象里

%>

<tr>

<td><%=newslist.get(i).getId() %></td> //用JSP表达式

<td><%=newslist.get(i).getTitle() %></td>

<td><%=newslist.get(i).getZuozhe() %></td>

<td><%=newslist.get(i).getLaiyuan()%></td>

<td><%=newslist.get(i).getContent()%></td>

<td><a href="admin/news.do?method=edit&id=<%=newslist.get(i).getId()%>">修改</a> | <a href="admin/news.do?method=remove&id=<%=newslist.get(i).getId()%>" onclick='return
confirm("确定要删除吗?")'

>删除</a></td>

</tr>

<%

}

}else{

%>

<tr><td colspan="6">数据库中没有数据!</td></tr>

<%

}

%>

</table

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐