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 }" οnclick='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()%>" οnclick='return confirm("确定要删除吗?")'
          >删除</a></td>
   </tr>
   <%
      }
    }else{
     %>
<tr><td colspan="6">数据库中没有数据!</td></tr>
    <%
    }
    %>
   </table

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Eclipse编写jsp页面,列表显示数据库查询得到的所有数据,需要以下步骤: 第一步,创建一个Java Dynamic Web Project项目。在Eclipse的导航栏,选择File -> New -> Dynamic Web Project。然后输入一个项目名称,点击Next,选择Target Runtime和Dynamic web module版本,再次点击Next,选择WebContent目录,点击Finish。 第二步,在WebContent目录下创建一个jsp文件。右击WebContent目录,选择New -> JSP File。输入一个文件名称,点击Finish。 第三步,编写jsp页面,建立数据列表。在jsp文件,通过Java脚本连接数据库,查询数据并存储在数组。然后使用JSTL标签库的forEach标签,在页面循环显示每条记录。 第四步,编写Java类,实现数据库连接和查询功能。使用JDBC技术,连接数据库,并使用SQL语句查询数据。将查询结果保存在JavaBean,再通过jsp页面显示数据。 第五步,配置web.xml文件。在web.xml文件增加servlet和servlet-mapping标签,配置jsp页面Java类的访问路径,并配置数据库的连接信息。 最后,保存所有文件,启动Tomcat服务器,在浏览器访问jsp页面,可以看到从数据库查询到的数据列表成功的显示在页面上。 ### 回答2: 在Eclipse编写JSP页面,需要使用Java代码来连接数据库并查询数据,再将数据展示在列表。 首先,需要导入JDBC相关的驱动包。可以在项目的“WebContent/WEB-INF/lib”目录下存放相应的jar包。 其次,需要在JSP页面编写Java代码连接数据库,并执行查询语句,将得到的结果封装成一个List对象。 <% Connection conn = null; Statement stmt = null; ResultSet rs = null; List<Bean> list = new ArrayList<Bean>(); try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","123456"); stmt = conn.createStatement(); rs = stmt.executeQuery("SELECT * FROM Table"); while(rs.next()) { Bean bean = new Bean(); bean.setName(rs.getString("Name")); bean.setAge(rs.getInt("Age")); //其他属性 list.add(bean); } } catch (Exception e) { e.printStackTrace(); } finally { //关闭连接等资源 } %> 最后,需要在JSP页面使用JSTL标签库或Java代码遍历list并动态构建HTML表格,将查询到的数据展示出来。 <c:forEach items="${list}" var="item"> <tr> <td>${item.name}</td> <td>${item.age}</td> <!--其他属性--> </tr> </c:forEach> 这样,就能够在Eclipse编写JSP页面,列表显示数据库查询得到的所有数据了。 ### 回答3: 要通过eclipse编写jsp页面来实现从数据库查询所有数据并在页面上以列表形式显示,需要按照以下步骤进行: 1. 在eclipse创建一个jsp页面,例如名为“list.jsp”。 2. 在jsp页面添加一个表格,用于显示数据。可以使用HTML标记语言来创建表格。 3. 在jsp页面嵌入java代码,用于连接数据库并查询数据。首先需要导入相关的库文件(如jdbc驱动),然后建立连接、执行查询语句、读取查询结果等。 4. 将查询得到的数据逐行输出到表格。在java代码,可以使用while循环来遍历结果集,将每一行数据输出到表格。 5. 最后,在jsp页面使用Tomcat或其他web服务器来运行该页面,即可在浏览器看到从数据库查询并显示出来的数据列表。 需要注意的是,连接数据库时需要提供正确的数据库信息和访问凭据,查询语句也需要根据具体需要进行修改。同时,为了提高安全性和效率,可以使用数据库连接池和分页查询等技术来优化程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值