接上----------//-----------------分页类----------
package page;import java.util.*;
import Data.*;public class PageBean {
int currentPage=1; //当前页
public int totalPages=0; //总页数
int pageRecorders=5;//每页5条数据
int totalRows=0; //总数据数
int pageStartRow=0;//每页的起始数
int pageEndRow=0; //每页显示数据的终止数
boolean hasNextPage=false; //是否有下一页
boolean hasPreviousPage=false; //是否有前一页
ArrayList arrayList;
Iterator it;
public PageBean(){}public PageBean(ArrayList arrayList){
this.arrayList=arrayList;
totalRows=arrayList.size();
it=arrayList.iterator();
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;
}}/**
* @return Returns the currentPage.
*/
public String getCurrentPage() {
return this.toString(currentPage);
}
/**
* @param currentPage The currentPage to set.
*/
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
/**
* @return Returns the pageRecorders.
*/
public int getPageRecorders() {
return pageRecorders;
}
/**
* @param pageRecorders The pageRecorders to set.
*/
public void setPageRecorders(int pageRecorders) {
this.pageRecorders = pageRecorders;
}
/**
* @return Returns the pageEndRow.
*/
public int getPageEndRow() {
return pageEndRow;
}
/**
* @return Returns the pageStartRow.
*/
public int getPageStartRow() {
return pageStartRow;
}
/**
* @return Returns the totalPages.
*/
public String getTotalPages() {return this.toString(totalPages);
}
/**
* @return Returns the totalRows.
*/
public String getTotalRows() {
return this.toString(totalRows);
}
/**
* @return Returns the hasNextPage.
*/
public boolean isHasNextPage() {
return hasNextPage;
}
/**
* @param hasNextPage The hasNextPage to set.
*/
public void setHasNextPage(boolean hasNextPage) {
this.hasNextPage = hasNextPage;
}
/**
* @return Returns the hasPreviousPage.
*/
public boolean isHasPreviousPage() {
return hasPreviousPage;
}
/**
* @param hasPreviousPage The hasPreviousPage to set.
*/
public void setHasPreviousPage(boolean hasPreviousPage) {
this.hasPreviousPage = hasPreviousPage;
}
public Book[] getNextPage(){currentPage=currentPage+1;
System.out.println("PageBean.getNextPage()正在执行;");
System.out.println("参数currentPage="+currentPage);if((currentPage-1)>0)
{
hasPreviousPage=true;
}
else
{
hasPreviousPage=false;
}if(currentPage>=totalPages)
{
hasNextPage=false;
}
else
{
hasNextPage=true;
}
System.out.println("参数hasNextPage="+hasNextPage);
System.out.println("准备执行PageBean.getBooks()");
Book[] books=getBooks();
this.description();return books;
}public Book[] 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;
}
Book[] books=getBooks();
this.description();
return books;
}public Book[] getBooks(){
System.out.println("pageBean.getBooks()开始执行;");if(currentPage*pageRecorders<totalRows){//判断是否为最后一页
pageEndRow=currentPage*pageRecorders;
pageStartRow=pageEndRow-pageRecorders;
}
else{
pageEndRow=totalRows;
pageStartRow=pageRecorders*(totalPages-1);
}
Book[] books=new Book[pageEndRow-pageStartRow+1];System.out.println("pageStartRow="+pageStartRow);
System.out.println("pageEndRow="+pageEndRow);
int j=0;
for(int i=pageStartRow;i<pageEndRow;i++)
{Book book=(Book)arrayList.get(i);
books[j++]=book;}
System.out.println("要显示的页面数据已经封装,具体信息如下:");
this.description();
return books;
}public String toString(int temp)
{
String str=Integer.toString(temp);
return str;
}public void description()
{String description="共有数据数:"+this.getTotalRows()+"共有页数: "+this.getTotalPages() +"当前页数为:"+this.getCurrentPage()+" 是否有前一页: "+this.isHasPreviousPage() +" 是否有下一页:"+this.isHasNextPage()+" 开始行数:"+this.getPageStartRow()+" 终止行数:"+this.getPageEndRow();System.out.println(description);}
}
package page;import java.util.*;
import Data.*;public class PageBean {
int currentPage=1; //当前页
public int totalPages=0; //总页数
int pageRecorders=5;//每页5条数据
int totalRows=0; //总数据数
int pageStartRow=0;//每页的起始数
int pageEndRow=0; //每页显示数据的终止数
boolean hasNextPage=false; //是否有下一页
boolean hasPreviousPage=false; //是否有前一页
ArrayList arrayList;
Iterator it;
public PageBean(){}public PageBean(ArrayList arrayList){
this.arrayList=arrayList;
totalRows=arrayList.size();
it=arrayList.iterator();
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;
}}/**
* @return Returns the currentPage.
*/
public String getCurrentPage() {
return this.toString(currentPage);
}
/**
* @param currentPage The currentPage to set.
*/
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
/**
* @return Returns the pageRecorders.
*/
public int getPageRecorders() {
return pageRecorders;
}
/**
* @param pageRecorders The pageRecorders to set.
*/
public void setPageRecorders(int pageRecorders) {
this.pageRecorders = pageRecorders;
}
/**
* @return Returns the pageEndRow.
*/
public int getPageEndRow() {
return pageEndRow;
}
/**
* @return Returns the pageStartRow.
*/
public int getPageStartRow() {
return pageStartRow;
}
/**
* @return Returns the totalPages.
*/
public String getTotalPages() {return this.toString(totalPages);
}
/**
* @return Returns the totalRows.
*/
public String getTotalRows() {
return this.toString(totalRows);
}
/**
* @return Returns the hasNextPage.
*/
public boolean isHasNextPage() {
return hasNextPage;
}
/**
* @param hasNextPage The hasNextPage to set.
*/
public void setHasNextPage(boolean hasNextPage) {
this.hasNextPage = hasNextPage;
}
/**
* @return Returns the hasPreviousPage.
*/
public boolean isHasPreviousPage() {
return hasPreviousPage;
}
/**
* @param hasPreviousPage The hasPreviousPage to set.
*/
public void setHasPreviousPage(boolean hasPreviousPage) {
this.hasPreviousPage = hasPreviousPage;
}
public Book[] getNextPage(){currentPage=currentPage+1;
System.out.println("PageBean.getNextPage()正在执行;");
System.out.println("参数currentPage="+currentPage);if((currentPage-1)>0)
{
hasPreviousPage=true;
}
else
{
hasPreviousPage=false;
}if(currentPage>=totalPages)
{
hasNextPage=false;
}
else
{
hasNextPage=true;
}
System.out.println("参数hasNextPage="+hasNextPage);
System.out.println("准备执行PageBean.getBooks()");
Book[] books=getBooks();
this.description();return books;
}public Book[] 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;
}
Book[] books=getBooks();
this.description();
return books;
}public Book[] getBooks(){
System.out.println("pageBean.getBooks()开始执行;");if(currentPage*pageRecorders<totalRows){//判断是否为最后一页
pageEndRow=currentPage*pageRecorders;
pageStartRow=pageEndRow-pageRecorders;
}
else{
pageEndRow=totalRows;
pageStartRow=pageRecorders*(totalPages-1);
}
Book[] books=new Book[pageEndRow-pageStartRow+1];System.out.println("pageStartRow="+pageStartRow);
System.out.println("pageEndRow="+pageEndRow);
int j=0;
for(int i=pageStartRow;i<pageEndRow;i++)
{Book book=(Book)arrayList.get(i);
books[j++]=book;}
System.out.println("要显示的页面数据已经封装,具体信息如下:");
this.description();
return books;
}public String toString(int temp)
{
String str=Integer.toString(temp);
return str;
}public void description()
{String description="共有数据数:"+this.getTotalRows()+"共有页数: "+this.getTotalPages() +"当前页数为:"+this.getCurrentPage()+" 是否有前一页: "+this.isHasPreviousPage() +" 是否有下一页:"+this.isHasNextPage()+" 开始行数:"+this.getPageStartRow()+" 终止行数:"+this.getPageEndRow();System.out.println(description);}
}
//-----action 类----------
package page;import org.apache.struts.action.*;
import javax.servlet.http.*;import java.util.*;
import javax.sql.*;
import Data.DBConn;public class PageListAction extends Action {public PageListAction(){}
ArrayList arrayList=new ArrayList();
PageBean pb;public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
String action;
action=request.getParameter("action");
if(action==null || action.equals("null")){ //第一次读取数据
try{
//DataSource datasource=this.getDataSource(request,Constants.DATASOURCE_KEY);
arrayList = Book.getAllBook();
System.out.println("第一步,数据已经成功传递到Action,action="+action);
}catch(Exception e){
e.printStackTrace();
System.out.println("数据库连接出现异常");
}pb = new PageBean(arrayList);
Book[] books = pb.getBooks();
pb.description();
request.setAttribute("result",books);
request.setAttribute("page",pb);}
else
{
if (action == "nextPage" || action.equals("nextPage")) {
System.out.println("参数action=" + action);
System.out.println("函数pb.getNextPage()准备执行");
Book[] books = pb.getNextPage();
request.setAttribute("page", pb);
request.setAttribute("result", books);
}
if(action=="previousPage" || action.equals("previousPage"))
{
System.out.println("参数action=" + action);
System.out.println("函数pb.getPreviouspage()准备执行");
Book[] books = pb.getPreviouspage();
request.setAttribute("page", pb);
request.setAttribute("result", books); }
}
return (mapping.findForward("success"));
}
}
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ page contentType="text/html; charset=gb2312" language="java"%>
<html:html locale="true">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body><table border="1">
<tr><th>书名</th><th>作者</th><th>价格</th></tr>
<logic:present name="result">
<logic:iterate id="book" name="result" type="page.Book" >
<logic:present name="book">
<tr>
<td><bean:write name="book" property="bookname" /></td>
<td> <bean:write name="book" property="author" /></td>
<td><bean:write name="book" property="price" /></td>
</tr>
</logic:present>
</logic:iterate>
</logic:present>
</table>//======================================
struts-config.xml 文件
//===================================<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd";><struts-config>
</data-sources>
<form-beans>
</form-beans>
<global-forwards>
</global-forwards>
<action-mappings>
<action path="/page" type="page.PageListAction" scope="request">
<forward name="success" path="/pagetest.jsp"/>
</action>
</action-mappings>
<controller>
</controller>
</struts-config>
问题就来了,为什么我的result 取不到值,
我request.setAttribute("result", books);已经设置了,而且数据库里也有值???