假如数据分了有四页 可就是能显示第一页 第二页 最后一页 就不能显示倒数第二页<code>
java中代码:package com.guoyuan.fenye;
import java.util.*;import com.guoyuan.form.DutyForm;public class Pager {
private int currentPage=1;//当前页
private int totalPages=0;//总页数
private int pageRecorders=5;//每页5行
private int totalRows=0;//总行数
private int pageStartRow=0;//每页的起始行
private int pageEndRow=0;//每页显示的终止数
private boolean hasNextPage=false;//有没有下一页
private boolean hasPreviousPage=false;//有没有上一页
@SuppressWarnings("unused")
private List list;
/**
* 用于初始化,
* 也就是说,只要你传过来你一个list就可以分页
* @param list
*/
public Pager(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 int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
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 int getPageEndRow() {
return pageEndRow;
}
public void setPageEndRow(int pageEndRow) {
this.pageEndRow = pageEndRow;
}
public int getPageRecorders() {
return pageRecorders;
}
public void setPageRecorders(int pageRecorders) {
this.pageRecorders = pageRecorders;
}
public int getPageStartRow() {
return pageStartRow;
}
public void setPageStartRow(int pageStartRow) {
this.pageStartRow = pageStartRow;
}
public String getTotalPages() {
return this.toString(totalPages);
}
public void setTotalPages(int totalPages) {
this.totalPages = totalPages;
}
public String getTotalRows() {
return this.toString(totalRows);
}
public void setTotalRows(int totalRows) {
this.totalRows = totalRows;
}
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;
hasNextPage=true;
hasPreviousPage=false;
}
if(currentPage>=totalPages){
currentPage=totalPages;
hasNextPage=false;
hasPreviousPage=true;
}
}
@SuppressWarnings("unchecked")
public List getPageList()
{
if(currentPage*pageRecorders<totalRows)
{
pageEndRow=currentPage*pageRecorders;
pageStartRow=pageEndRow-pageRecorders;
}else
{
pageEndRow=totalRows;
pageStartRow=pageRecorders*(totalPages-1);
}
System.out.println("start"+pageStartRow);
System.out.println("end"+pageEndRow);
List templist=new ArrayList();
int j=0;
for(int i=pageStartRow;i<pageEndRow;i++)
{
DutyForm user=(DutyForm)list.get(i);
templist.add(j,user);
j++;
}
return templist;
}
public String toString(int temp){
return Integer.toString(temp);
}}/***************************/
Action中转业代码:
public ActionForward ListDuty(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
DutyDao dao=new DutyImp();
List list=dao.ListDuty();
Pager page=new Pager(list);
ActionForward forward=new ActionForward();
if (list != null)
{
String action=null;
action=request.getParameter("action");
if(action==null||action.equals("null"))
{
page=new Pager(list);
list=page.getPageList();
request.setAttribute("list",list);
request.setAttribute("page", page);
}
else
{
if(action=="firstPage"||action.equals("firstPage"))
{
page.getFirstPage();
list=page.getPageList();
request.setAttribute("list",list);
request.setAttribute("page", page);
}
if(action=="nextPage"||action.equals("nextPage"))
{
page.getNextPage();
list=page.getPageList();
request.setAttribute("list",list);
request.setAttribute("page", page);
}
if(action=="previousPage"||action.equals("previousPage"))
{
page.getPreviousPage();
list=page.getPageList();
request.setAttribute("list",list);
request.setAttribute("page", page);
}
if(action=="lastPage"||action.equals("lastPage"))
{
page.getLastPage();
list=page.getPageList();
request.setAttribute("list",list);
request.setAttribute("page", page);
}
}
}
return forward=mapping.findForward("dutylist");
}
/**********************/
jsp 中显示 上一页 下一页 代码:
<html:link page="/ListDuty.do?action=firstPage">首页</html:link>
<logic:equal name="page" property="hasNextPage" value="true">
<html:link page="/ListDuty.do?action=nextPage">下一页</html:link>
</logic:equal>
<logic:equal name="page" property="hasPreviousPage" value="true">
<html:link page="/ListDuty.do?action=previousPage">上一页</html:link>
</logic:equal>
<html:link page="/ListDuty.do?action=lastPage">末页</html:link>
</Td>
</form>
总共
<bean:write name="page" property="totalRows"/>行,
一共
<bean:write name="page" property="totalPages"/>页,
当前是第
<bean:write name="page" property="currentPage"/>页
</code>
java中代码:package com.guoyuan.fenye;
import java.util.*;import com.guoyuan.form.DutyForm;public class Pager {
private int currentPage=1;//当前页
private int totalPages=0;//总页数
private int pageRecorders=5;//每页5行
private int totalRows=0;//总行数
private int pageStartRow=0;//每页的起始行
private int pageEndRow=0;//每页显示的终止数
private boolean hasNextPage=false;//有没有下一页
private boolean hasPreviousPage=false;//有没有上一页
@SuppressWarnings("unused")
private List list;
/**
* 用于初始化,
* 也就是说,只要你传过来你一个list就可以分页
* @param list
*/
public Pager(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 int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
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 int getPageEndRow() {
return pageEndRow;
}
public void setPageEndRow(int pageEndRow) {
this.pageEndRow = pageEndRow;
}
public int getPageRecorders() {
return pageRecorders;
}
public void setPageRecorders(int pageRecorders) {
this.pageRecorders = pageRecorders;
}
public int getPageStartRow() {
return pageStartRow;
}
public void setPageStartRow(int pageStartRow) {
this.pageStartRow = pageStartRow;
}
public String getTotalPages() {
return this.toString(totalPages);
}
public void setTotalPages(int totalPages) {
this.totalPages = totalPages;
}
public String getTotalRows() {
return this.toString(totalRows);
}
public void setTotalRows(int totalRows) {
this.totalRows = totalRows;
}
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;
hasNextPage=true;
hasPreviousPage=false;
}
if(currentPage>=totalPages){
currentPage=totalPages;
hasNextPage=false;
hasPreviousPage=true;
}
}
@SuppressWarnings("unchecked")
public List getPageList()
{
if(currentPage*pageRecorders<totalRows)
{
pageEndRow=currentPage*pageRecorders;
pageStartRow=pageEndRow-pageRecorders;
}else
{
pageEndRow=totalRows;
pageStartRow=pageRecorders*(totalPages-1);
}
System.out.println("start"+pageStartRow);
System.out.println("end"+pageEndRow);
List templist=new ArrayList();
int j=0;
for(int i=pageStartRow;i<pageEndRow;i++)
{
DutyForm user=(DutyForm)list.get(i);
templist.add(j,user);
j++;
}
return templist;
}
public String toString(int temp){
return Integer.toString(temp);
}}/***************************/
Action中转业代码:
public ActionForward ListDuty(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
DutyDao dao=new DutyImp();
List list=dao.ListDuty();
Pager page=new Pager(list);
ActionForward forward=new ActionForward();
if (list != null)
{
String action=null;
action=request.getParameter("action");
if(action==null||action.equals("null"))
{
page=new Pager(list);
list=page.getPageList();
request.setAttribute("list",list);
request.setAttribute("page", page);
}
else
{
if(action=="firstPage"||action.equals("firstPage"))
{
page.getFirstPage();
list=page.getPageList();
request.setAttribute("list",list);
request.setAttribute("page", page);
}
if(action=="nextPage"||action.equals("nextPage"))
{
page.getNextPage();
list=page.getPageList();
request.setAttribute("list",list);
request.setAttribute("page", page);
}
if(action=="previousPage"||action.equals("previousPage"))
{
page.getPreviousPage();
list=page.getPageList();
request.setAttribute("list",list);
request.setAttribute("page", page);
}
if(action=="lastPage"||action.equals("lastPage"))
{
page.getLastPage();
list=page.getPageList();
request.setAttribute("list",list);
request.setAttribute("page", page);
}
}
}
return forward=mapping.findForward("dutylist");
}
/**********************/
jsp 中显示 上一页 下一页 代码:
<html:link page="/ListDuty.do?action=firstPage">首页</html:link>
<logic:equal name="page" property="hasNextPage" value="true">
<html:link page="/ListDuty.do?action=nextPage">下一页</html:link>
</logic:equal>
<logic:equal name="page" property="hasPreviousPage" value="true">
<html:link page="/ListDuty.do?action=previousPage">上一页</html:link>
</logic:equal>
<html:link page="/ListDuty.do?action=lastPage">末页</html:link>
</Td>
</form>
总共
<bean:write name="page" property="totalRows"/>行,
一共
<bean:write name="page" property="totalPages"/>页,
当前是第
<bean:write name="page" property="currentPage"/>页
</code>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货