java web 分页实例项目

6 篇文章 0 订阅
1 篇文章 0 订阅

开发环境:myeclipse、jdk1.7、mysql;

对于mysql数据库中的表来说,可以增加一个自增字段,然后根据这个字段来进行按页的提取数据,这样操作应该比oracle使用rownum来的简单点。

数据库表:

CREATE TABLE `table_name` (
  `id` bigint(20) NOT NULL,
  `city_no` varchar(255) DEFAULT NULL,
  `mp_id` varchar(255) DEFAULT NULL,
  `data_dt` datetime DEFAULT NULL,
  `obj_id` varchar(255) DEFAULT NULL,
  `day_in_e` double DEFAULT NULL,
  `day_out_e` double DEFAULT NULL,
  `line_loss` double DEFAULT NULL,
  `county_no` bigint(20) DEFAULT NULL,
  `line_id` bigint(20) DEFAULT NULL,
  `line_name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `IDX_IEP_LLP_01` (`mp_id`,`data_dt`),
  KEY `IDX_IEP_LLP_02` (`data_dt`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

分页封装类:

package model;

import java.util.List;

public class PageModel {
	private List list;
	private int pageSize;
	private int totalPages;
	public int getTotalPages() {
		return (totalRecords+pageSize-1)/pageSize;
	}
	public void setTotalPages(){
		totalPages=(totalRecords+pageSize-1)/pageSize;
	}
	public int getPageSize() {
		return pageSize;
	}
	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}
	public int getPageNo() {
		return pageNo; 
	}
	public void setPageNo(int pageNo) {
		this.pageNo = pageNo;
	}
	private int pageNo;
	public List getList() {
		return list;
	}
	public void setList(List list) {
		this.list = list;
	}
	public int getTotalRecords() {
		return totalRecords;
	}
	public void setTotalRecords(int totalRecords) {
		this.totalRecords = totalRecords;
	}
	private int totalRecords;
	
	/**
	 * 获取首页
	 * @return
	 */
	public int getTopPageNo(){
		return 1;
	}
	/**
	 * 获取前一页
	 * @return
	 */
	public int getPrePageNo(){
		if(pageNo<=1){
			return 1;
		}
		return pageNo-1;
	}
	/**
	 * 获取后一页
	 * @return
	 */
	public int getNextPageNo(){
		if(pageNo>=totalPages){
			return totalPages;
		}
		return pageNo+1;
	}
	/**
	 * 获取最后一页
	 * @return
	 */
	public int getLastPageNo(){
		return totalPages;
	}
}
调用分页的jsp:

<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%@ page import="java.text.*" %>
<%@ page import ="manager.*"%>
<%@ page import ="model.*" %>


  <!-- 获取数据集 -->
  <%
  	int pageNo=1;
  	int pageSize=5;
  	String pageNoString = request.getParameter("pageNo");
	if (pageNoString != null) {
		pageNo = Integer.parseInt(pageNoString);
	}
  	PageModel pageM=LineManager.findAllLine(pageNo,pageSize);
  	pageM.setPageNo(pageNo);
  	pageM.setPageSize(pageSize);
  	pageM.setTotalPages();
  
   %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <script type="text/javascript">  ...</script>
   </head> <body>
   <h1 align="center"> 分页演示</h1>
   <br>
   <br>
   <br>
   <table width="90%" border="1" align="center" cellspacing="0" cellpadding="0">
	  	<tr bgcolor="gray">
	  		<th>
	  			<input type="checkbox" name="selectFlag" >
	  		</th>
	    	<th>ID</th>
	    	<th>线路ID</th>
	    <!--  	<th>线路名称</th> -->
	    	<th>城市ID</th>
	    	<th>乡镇ID</th>
	    	<th>计量点ID</th>
	    	<th>日期</th>
	    	<th>输入电量</th>
	    	<th>输出电量</th>
	    	<th>线损率</th>
	    	   	
	  	</tr>
	  	<%
	  		List lineList=pageM.getList();
	  		for(int i=0;i<lineList.size();i++){
	  			Line line=(Line)lineList.get(i);
	  	 %>
	  	<tr>
	  		<td>
	  			<input type="checkbox" name="selectFlag" value=<%=line.getId() %>>
	  		</td>
	    	<td><%=line.getId() %></td>
	    	<td><%=line.getLine_id() %></td>
	    <!-- 	<td><%=line.getLine_name() %></td>   -->
	    	<td><%=line.getCity_no() %></td>
	    	<td><%=line.getCounty_no() %></td>
	    	<td><%=line.getMp_id() %></td>
	    	<td><%=new SimpleDateFormat("YYYY/MM/dd HH:mm:ss").format(line.getDate_dt()) %></td>
	    	<td><%=line.getDay_in_e() %></td>
	    	<td><%=line.getDay_out_e() %></td>
	    	<td><%=line.getLine_loss() %></td>
	  	</tr>
	  	
	  	<%
	  		}
	  	 %>
	</table>
    <table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
   		<tr>
   			<td>
   				<div align="left">
   					<font >&nbsp;共 &nbsp;<%=pageM.getTotalPages() %>&nbsp;页	</font>&nbsp;&nbsp;&nbsp;&nbsp;
   					<font >&nbsp;当前第</font>
   					<font color="#FF0000"><%=pageM.getPageNo() %></font>
   					<font >页</font>
   				</div>
   			</td>
   			
   			
   			<td>
   				<div align="right">
   					<input name="btnTopPage" type="button" 
   					value="|&lt;&lt;" onClick="topPage()" title="首页">
   					
   					<input name="btnPrePage" type="button" 
   					value="&lt;" onClick="prePage()" title="前一页">
   					
   					<input name="btnNextPage" type="button"
   					value="&gt;" onClick="nextPage()" title="下一页">
   					
   					<input name="btnLastPage" type="button"
   					value="&gt;&gt;|" onClick="lastPage()" title="末页">
   				</div>
   			</td>
   		</tr>
    </table>
   
  </body>
</html>



浏览器效果:


整个web项目可以在 http://download.csdn.net/detail/fansy1990/5562351 下载



分享,快乐,成长


转载请注明出处:http://blog.csdn.net/fansy1990 




  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在MyEclipse中实现分页功能,可以通过使用Java代码和JSP页面来实现。下面是一个示例代码,演示了如何在MyEclipse中实现分页功能: 1. 在JSP页面中,使用HTML表格来展示分页数据: ```html <table> <thead> <tr> <th>ID</th> <th>Name</th> <th>Age</th> </tr> </thead> <tbody> <%-- 使用Java代码从数据库中获取分页数据 --%> <% int currentPage = 1; // 当前页码 int pageSize = 10; // 每页显示的记录数 // 计算总页数 int totalPage = getTotalPage(pageSize); // 获取当前页的数据 List<User> userList = getUserList(currentPage, pageSize); // 遍历数据并展示在表格中 for(User user : userList) { %> <tr> <td><%= user.getId() %></td> <td><%= user.getName() %></td> <td><%= user.getAge() %></td> </tr> <% } %> </tbody> </table> ``` 2. 在Java代码中,实现获取分页数据的方法: ```java public List<User> getUserList(int currentPage, int pageSize) { // 根据当前页码和每页显示的记录数,计算起始索引 int startIndex = (currentPage - 1) * pageSize; // 从数据库中查询分页数据 // 这里使用假数据作为示例 List<User> userList = new ArrayList<>(); for(int i = startIndex; i < startIndex + pageSize; i++) { User user = new User(); user.setId(i); user.setName("User " + i); user.setAge(20 + i); userList.add(user); } return userList; } public int getTotalPage(int pageSize) { // 从数据库中查询总记录数 // 这里使用假数据作为示例 int totalRecord = 100; // 计算总页数 int totalPage = (int) Math.ceil((double) totalRecord / pageSize); return totalPage; } ``` 请注意,上述代码仅为示例,实际情况下需要根据具体的业务需求进行修改和适配。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值