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


    一 首先在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

  • 相关阅读:
    scrollTop
    ……
    放下
    值得纪念的一天
    php新手上路(六)
    image map
    文字多出用点代替
    js formatter
    感谢,今天刚申请了博客园,
    接口的作用
  • 原文地址:https://www.cnblogs.com/htys/p/3291873.html
Copyright © 2020-2023  润新知