主要简单说明一下页面的分页
package com.hello.web;
import java.util.ArrayList;
import java.util.List;
import com.hello.model.User;
public class Page {
//设置当前页
private int currentPage=1;
//总页数
private int totalPages=0;
//每页的记录数
private int pageRecorders=5;
//总共的记录数
private int totalRows=0;
//页面的开始记录数
private int pageStartRow=0;
//页面结束时的记录数
private int pageEndRow=0;
//是否有下一页
private boolean hasNextPage=false;
//是否有上一页
private boolean hasPreviousPage=false;
//返回数据库的集合
private List list;
public Page(){
}
//构造器传入数据
public Page(List list){
this.list=list;
totalRows = list.size();
hasPreviousPage=false;
currentPage=1;
if((totalRows%pageRecorders)==0){
totalPages = totalRows/pageRecorders;
}else{
totalPages = totalRows/pageRecorders+1;
}
//判断是否有下页
if(currentPage >=totalPages){
hasNextPage=false;
}else{
hasNextPage=true;
}
if(totalRows<pageRecorders){
this.pageStartRow=0;
this.pageEndRow=totalRows;
}else{
this.pageStartRow=0;
this.pageEndRow=pageRecorders;
}
}
public String getCurrentPage() {
return this.toString(currentPage);
}
private String toString(int temp) {
// TODO Auto-generated method stub
return Integer.toString(temp);
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public String getTotalPages() {
return this.toString(totalPages);
}
public void setTotalPages(int totalPages) {
this.totalPages = totalPages;
}
public int getPageRecorders() {
return pageRecorders;
}
public void setPageRecorders(int pageRecorders) {
this.pageRecorders = pageRecorders;
}
public String getTotalRows() {
return this.toString(totalRows);
}
public void setTotalRows(int totalRows) {
this.totalRows = totalRows;
}
public int getPageStartRow() {
return pageStartRow;
}
public void setPageStartRow(int pageStartRow) {
this.pageStartRow = pageStartRow;
}
public int getPageEndRow() {
return pageEndRow;
}
public void setPageEndRow(int pageEndRow) {
this.pageEndRow = pageEndRow;
}
public boolean isHasNextPage() {
return hasNextPage;
}
public void setHasNextPage(boolean hasNextPage) {
this.hasNextPage = hasNextPage;
}
public boolean isHasPreviousPage() {
return hasPreviousPage;
}
public void setHasPreviousPage(boolean hasPreviousPage) {
this.hasPreviousPage = hasPreviousPage;
}
//取得首页
public void getFirstPage(){
currentPage=1;
hasPreviousPage=false;
if(currentPage>=totalPages){
hasNextPage=false;
}else{
hasNextPage = true;
}
}
//取得下一页
public void getNextPage(){
currentPage=currentPage+1;
if((currentPage-1)>0){
hasPreviousPage=true;
}else{
hasPreviousPage=false;
}
if(currentPage>=totalPages){
hasNextPage=false;
}else{
hasNextPage=true;
}
}
//取得前一页
public void getPreviousPage(){
currentPage=currentPage-1;
if(currentPage==0){
currentPage=1;
}
if(currentPage>=totalPages){
hasNextPage=false;
}else{
hasNextPage=true;
}
if((currentPage-1)>0){
hasPreviousPage=true;
}else{
hasPreviousPage=false;
}
}
//取得尾页
public void getLastPage(){
currentPage =totalPages;
if(currentPage==0){
currentPage=1;
}
hasNextPage=false;
if((currentPage-1)>0){
hasPreviousPage=true;
}else{
hasPreviousPage=false;
}
}
//跳转页面
public void setGotoPage(int gotoPage){
this.currentPage = gotoPage;
hasNextPage=true;
hasPreviousPage=true;
if(currentPage<=1){
currentPage=1;
hasPreviousPage=false;
hasNextPage=true;
}
if(currentPage >= totalPages){
currentPage=totalPages;
hasPreviousPage=true;
hasNextPage=false;
}
}
//取得页面list的信息
public List<User> getPageList(){
//判断是否是最后一页
if(currentPage*pageRecorders<totalRows){
pageEndRow = currentPage*pageRecorders;
pageStartRow = pageEndRow-pageRecorders;
}else{
pageEndRow = totalRows;
pageStartRow = pageRecorders*(totalPages-1);
}
List<User> testList = new ArrayList<User>();
int j=0;
for(int i=pageStartRow;i<pageEndRow;i++){
User user = (User) list.get(i);
testList.add(j, user);
j++;
}
return testList;
}
public void setList(List list) {
this.list = list;
}
}
页面的代码
<%@ page language="java" pageEncoding="gbk"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>LIST DATA</title>
</head>
<body>
<table border="1">
<Tr>
<td>
id
</td>
<td>
name
</td>
<td>
email
</td>
<td>
desn
</td>
<td>
edit
</td>
<td>
delete
</td>
</Tr>
<c:forEach items="${requestScope['users']}" var="user">
<tr>
<td>
<c:out value="${user.id}"></c:out>
</td>
<td>
<c:out value="${user.name}"></c:out>
</td>
<td>
<c:out value="${user.email}"></c:out>
</td>
<td>
<c:out value="${user.descn}"></c:out>
</td>
<td>
<a
href="<c:url value="/user.do?method=edit&id=${user.id}"/>">edit</a>
</td>
<td>
<a
href="<c:url value="/user.do?method=delete&id=${user.id}"/>">delete</a>
</td>
</tr>
</c:forEach>
</Table> <br>
<html:link page="/user.do?method=list&action=firstPage">首页</html:link>
<logic:equal name="page" property="hasPreviousPage" value="true">
<html:link page="/user.do?method=list&action=previousPage">上一页</html:link>
</logic:equal>
<logic:equal name="page" property="hasPreviousPage" value="false">
上一页
</logic:equal>
<logic:equal name="page" property="hasNextPage" value="true">
<html:link page="/user.do?method=list&action=nextPage">下一页</html:link>
</logic:equal>
<logic:equal name="page" property="hasNextPage" value="false">
下一页
</logic:equal>
<html:link page="/user.do?method=list&action=lastPage">尾页</html:link>
共有数据
<bean:write name="page" property="totalRows"/>
条;共分
<bean:write name="page" property="totalPages"/>
页;当前是第
<bean:write name="page" property="currentPage"/>
页
<br><button onclick="location.href='pages/edit.jsp'">add</button>
</body>
</html>
UserAction,设置页面
只有list方法,其他的方法在代码里
public class UserAction extends DispatchAction {
private Page page;
private UserService userService;
public void setUserService(UserService userService) {
this.userService = userService;
}
public ActionForward list(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
List<User> list;
String action = null;
action = request.getParameter("action");
if (action == null || "action".equals(action)) {
list = userService.loadAll();
page = new Page(list);
list = page.getPageList();
request.setAttribute("users", list);
request.setAttribute("page", page);
} else {
if (action == "firstPage" || action.equals("firstPage")) {
page.getFirstPage();
list = page.getPageList();
request.setAttribute("users", list);
request.setAttribute("page", page);
}
if (action == "nextPage" || action.equals("nextPage")) {
page.getNextPage();
list = page.getPageList();
request.setAttribute("users", list);
request.setAttribute("page", page);
}
if (action == "previousPage" || action.equals("previousPage")) {
page.getPreviousPage();
list = page.getPageList();
request.setAttribute("users", list);
request.setAttribute("page", page);
}
if (action == "lastPage" || action.equals("lastPage")) {
page.getLastPage();
list = page.getPageList();
request.setAttribute("users", list);
request.setAttribute("page", page);
}
}
return mapping.findForward("list");
}
----------------------
}
分享到:
相关推荐
Struts1.2+Struts2.1.6+spring 2.0+hibernate3.1+Ibatis2.3 SSH
Struts1.2+Struts2.1.6+spring 2.0+hibernate3.1+Ibatis2.3内个框架的集成
Struts1.2、Spring2.0和Hibernate3.1是经典的Java企业级开发框架组合,它们在2000年代中期至后期广泛应用于构建基于Java的Web应用程序。这个组合通常被称为“SSH”三位一体,各自负责不同的职责: 1. **Struts1.2**...
开发环境:Windows XP sp3、SQL Server 2005、JDK 1.6、Struts2.1.6、Spring 2.0、Hibernate3.1、MyEclipse 5.5、Tomcat 6.0 使用步骤: 1、下载解压之后,使用IDE导入工程 2、把工程中的“演示数据脚本.sql”导入到...
### Struts 1.2 + Spring 2.0 + Hibernate 3.1 集成开发详解 #### 1. 引言 随着Java Web应用的发展,越来越多的企业级项目选择了Struts、Spring与Hibernate(简称SSH)这三种框架进行集成开发。本篇文章将通过...
在这个“struts1.2+spring2.0+hibernate3.1框架所需jar包”压缩包中,包含了这三个框架的核心库和其他必要的依赖,以便于开发者在项目中集成和使用。 **Struts 1.2** 是一个基于MVC设计模式的Java Web框架,它使得...
Struts1.2、Spring2.0和Hibernate3.1是经典的Java企业级开发框架组合,被称为SSH(Struts-Spring-Hibernate)集成框架。这个小实例为学习者提供了使用这三个框架协同工作的基础示例,有助于理解它们如何在实际项目中...
### Struts2.0+Spring2.0+Hibernate3.1 整合知识点详解 #### 一、项目背景与概述 随着企业应用的发展,越来越多的系统需要具备强大的业务逻辑处理能力以及灵活的数据持久化功能。Struts2作为MVC框架之一,Spring...
SSH(Struts2 + Spring2.0 + Hibernate3.1)是一个经典的Java Web开发框架组合,用于构建高效、可扩展的企业级应用。这个上传下载例子是基于SSH框架实现的一个功能模块,它展示了如何在Web应用中处理文件的上传和...
采用在web.xml中加载spring配置文件的方法降低struts和spring的耦合度,使用自定义的MyDelegatingRequestProcessor类来代替spring的DelegatingRequestProcessor类来解决spring中action的bean的重复配置问题。...
Struts2.0、Spring2.0和Hibernate3.1是经典的Java企业级开发框架组合,通常被称为SSH(Struts2、Spring、Hibernate)架构。这个仓库管理系统是基于SSH搭建的,展示了如何在实际项目中整合这三个框架进行数据管理。 ...
内含Struts1.3 API、Struts2.0 API、Struts1.3标签、Hibernate3.1教程、Hibernate3.1API、Spring3.0 API、Spring3.1API。SSH应有尽有,API均是CHM格式,方便使用。教程为pdf格式。
Struts2、Hibernate3.1和Spring2.0是经典的Java Web开发框架组合,被称为SSH。这个实例源码集合提供了一个完整的项目示例,旨在帮助初学者理解和掌握这三大框架的整合应用。以下是对这三个框架及其整合的详细介绍: ...
Struts2.0、Hibernate3.1和Spring2.0是Java Web开发中经典的三大框架,它们共同构建了所谓的SSH(Struts2、Spring、Hibernate)集成开发环境,为开发者提供了强大的模型-视图-控制器(MVC)架构支持。这个压缩包包含...
eclipse整合Struts1.2 + hibernate3.1 + spring2.0 相关链接:http://blog.csdn.net/shellwin/archive/2010/07/02/5708865.aspx
SSH框架是Java开发中常用的三大框架集合,包括Spring、Struts和Hibernate,它们协同工作以构建高效、可维护的企业级应用程序。在这个特定的压缩包中,我们拥有Spring 2.0、Struts 2和Hibernate 3.1的版本,以及JDBC...
远程教育系统是一个基于Java技术栈的在线学习平台,利用了Struts1.2、Hibernate3.1、Spring2.0和Tomcat5.0等组件,搭配SqlServer2005数据库,构建了一个功能完善的系统。这里我们将深入探讨这些技术及其在远程教育...
很多人在做SSH整合的时候会出现各种异常,其实一看异常类型根本就不是自己书写的代码出了问题,而是MyEclipse所提供的jar包有问题,很容易...Hibernate3.1 + Spring2.0测试通过的,若出现jar包冲突的朋友可以下载下来使用!
Struts1.2、Spring1.2和Hibernate3.1是经典的Java企业级开发框架组合,通常被称为SSH(Struts + Spring + Hibernate)集成。这个整合示例代码提供了一个全面的学习资源,帮助开发者理解如何将这三个强大的框架有效地...
SSH资源环境搭建,ssh开发配置教程,以供参考; 开发环境:MyEclipse6.0+Tomcat5.0+SQLServer2000 配置环境:Struts2+Spring2+Hibernate3.1