首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

为什么小弟我的分页不能运行?

2012-01-08 
为什么我的分页不能运行??我作了一个struts的分页程序,可以显示第一页和 下一页 链接,可是在点击 下一

为什么我的分页不能运行??
我作了一个struts的分页程序,可以显示第一页和 "下一页 "链接,可是在点击 "下一页 "运行时就出差了,调试发现是页面的数据没有传回Action,请问各们大虾这是怎么回事,小弟我弄了好久了呀.....
源码如下:
数据库mysql:
create   table   book(name   varchar(50),   author   varchar(30),   price   int);
bean:(其中PageBean用于处理分页)
Book.java
public   class   Book   {
private   String   bookName;
private   String   author;
private   int   price;
public   String   getAuthor()   {
return   author;
}
public   void   setAuthor(String   author)   {
this.author   =   author;
}
public   String   getBookName()   {
return   bookName;
}
public   void   setBookName(String   bookName)   {
this.bookName   =   bookName;
}
public   int   getPrice()   {
return   price;
}
public   void   setPrice(int   price)   {
this.price   =   price;
}
}
PageBean.java
import   java.sql.SQLException;
import   java.util.ArrayList;
public   class   PageBean   {
private   static   int   record   =   5;
private   int   currentPage   =   1;
private   int   totalPages   =   0;
private   int   totalRecords   =   0;
private   int   pageStart   =   0;
private   int   pageEnd   =   0;
private   boolean   hasNext   =   false;
private   boolean   hasPrev   =   false;
private   static   ArrayList   list;
public   PageBean()   {
}
public   PageBean(ArrayList   list)   {
this.list   =   list;
totalRecords   =   list.size();
setCurrentPage(1);
setTotalPages();
setPageStart();
setPageEnd();
setHasNext(true);
}
public   Book[]   getPreviousPage()   {
if   (currentPage   <   totalPages)   {
hasNext   =   true;
}   else
hasNext   =   false;
currentPage   -=   1;
if   (currentPage   <=   0)   {
currentPage   =   1;
hasPrev   =   false;
}   else
hasPrev   =   true;
pageStart   =   (currentPage   -   1)   *   record   +   1;
pageEnd   =   pageStart   +   record   -   1;
return   getBooks();
}
public   Book[]   getNextpage()   {
if   (currentPage   -   1   >   0)   {
hasPrev   =   true;
}   else
hasPrev   =   false;
currentPage   +=   1;
if   (currentPage   >   totalPages)   {
currentPage   =   totalPages;
hasNext   =   false;
}   else   {
hasNext   =   true;
pageStart   =   (currentPage   -   1)   *   record   +   1;
if   (currentPage   ==   totalPages)   {
pageEnd   =   totalRecords;
}   else   {
pageEnd   =   pageStart   +   record   -   1;
}
}
return   getBooks();
}
public   Book[]   getBooks()   {
Book[]   books   =   new   Book[pageEnd   -   pageStart   +   1];


int   i   =   pageStart   -   1;
int   j   =   0;
for   (;   i   <   pageEnd;   i++)   {
books[j]   =   (Book)   list.get(i);
j++;
}
return   books;
}
public   int   getRecord()   {
return   record;
}
public   int   getCurrentPage()   {
return   currentPage;
}
public   void   setCurrentPage(int   currentPage)   {
this.currentPage   =   currentPage;
}
public   boolean   isHasNext()   {
return   hasNext;
}
public   void   setHasNext(boolean   hasNext)   {
this.hasNext   =   hasNext;
}
public   boolean   isHasPrev()   {
return   hasPrev;
}
public   void   setHasPrev(boolean   hasPrev)   {
this.hasPrev   =   hasPrev;
}
public   int   getPageEnd()   {
return   pageEnd;
}
public   void   setPageEnd()   {
if   (currentPage   ==   totalPages)   {
pageEnd   =   totalRecords;
}   else
pageEnd   =   pageStart   +   record   -   1;
}
public   int   getPageStart()   {
return   pageStart;
}
public   void   setPageStart()   {
pageStart   =   (currentPage   -   1)   *   record   +   1;
}
public   int   getTotalPages()   {
return   totalPages;
}
public   void   setTotalPages()   {
if   (totalRecords   %   record   ==   0)   {
totalPages   =   totalRecords   /   record;
}   else
totalPages   =   1   +   totalRecords   /   record;
}
public   int   getTotalRecords()   {
return   totalRecords;
}
public   void   setTotalRecords(int   totalRecords)   {
this.totalRecords   =   totalRecords;
}
}
Action:
PageAction.java
import   java.sql.SQLException;
import   java.util.ArrayList;
import   javax.servlet.http.HttpServletRequest;
import   javax.servlet.http.HttpServletResponse;
import   org.apache.struts.action.Action;
import   org.apache.struts.action.ActionForm;
import   org.apache.struts.action.ActionForward;
import   org.apache.struts.action.ActionMapping;
import   xiao.bean.Book;
import   xiao.bean.PageBean;
import   xiao.dao.BookDao;
import   com.yourcompany.struts.form.PageForm;
public   class   PageAction   extends   Action   {
public   ActionForward   execute(ActionMapping   mapping,   ActionForm   form,
HttpServletRequest   request,   HttpServletResponse   response)   {
String   action   =   request.getParameter( "action ");
PageBean   page   =   new   PageBean();
int   record   =   page.getRecord();
Book   book[]   =   null;
if   (action   ==   null   ||   action.equals( "null "))   {
String   sql   =   "select*from   book ";
ArrayList   arrayList   =   new   ArrayList();
try   {
arrayList   =   BookDao.showAll(sql);
}   catch   (ClassNotFoundException   e)   {


e.printStackTrace();
}   catch   (SQLException   e)   {
e.printStackTrace();
}
page   =   new   PageBean(arrayList);
book   =   page.getBooks();
}   else   {
page   =   (PageBean)request.getAttribute( "page ");
if   (action   ==   "previousPage "   ||   action.equals( "previousPage "))   {
book   =   page.getPreviousPage();
}
if   (action   ==   "nextPage "   ||   action.equals( "nextPage "))   {
book   =   page.getNextpage();
}
}
ArrayList   list   =   new   ArrayList();
for   (int   i   =   0;   i   <   record;   i++)   {
list.add(book[i]);
}
request.setAttribute( "list ",   list);
request.setAttribute( "page ",   page);
return   mapping.findForward( "sucess ");
}
}
jsp页面代码:
Show.jsp
<%@   page   language= "java "   pageEncoding= "GBK "%>
<jsp:directive.page   import= "xiao.bean.PageBean "   />
<jsp:directive.page   import= "xiao.bean.Book "   />
<%@   taglib   uri= "http://jakarta.apache.org/struts/tags-bean "
prefix= "bean "%>
<%@   taglib   uri= "http://jakarta.apache.org/struts/tags-html "
prefix= "html "%>
<%@   taglib   uri= "http://jakarta.apache.org/struts/tags-logic "
prefix= "logic "%>
<%@   taglib   uri= "http://jakarta.apache.org/struts/tags-tiles "
prefix= "tiles "%>
<%@   taglib   uri= "http://jakarta.apache.org/struts/tags-template "
prefix= "template "%>
<%@   taglib   uri= "http://jakarta.apache.org/struts/tags-nested "
prefix= "nested "%>
<!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.01   Transitional//EN ">
<html:html   locale= "true ">
<head>
<html:base   />
<title> 显示每页 </title>
<meta   http-equiv= "pragma "   content= "no-cache ">
<meta   http-equiv= "cache-control "   content= "no-cache ">
<meta   http-equiv= "expires "   content= "0 ">
<meta   http-equiv= "keywords "   content= "keyword1,keyword2,keyword3 ">
<meta   http-equiv= "description "   content= "This   is   my   page ">
<!--
<link   rel= "stylesheet "   type= "text/css "   href= "styles.css ">
-->
</head>
<body>
<table   align= "center ">
<tr   align= "center ">
<td   align= "center ">
Book   Name
</td>
<td   align= "center ">
Author
</td>
<td   align= "center ">
Price
</td>
</tr>
<logic:present   name= "list ">
<logic:iterate   id= "book "   name= "list "   type= "xiao.bean.Book ">
<logic:present   name= "book ">


<tr>
<td   align= "left "> <bean:write   name= "book "   property= "bookName "   />
</td>
<td   align= "left ">
<bean:write   name= "book "   property= "author "   />
</td>
<td   align= "right ">
<bean:write   name= "book "   property= "price "   />
</td>
</tr>
</logic:present>
</logic:iterate>
</logic:present>
<logic:present   name= "page "   scope= "request ">
<tr   width= "800 ">
<td   height= "25 "   align= "center "   colspan= "3 ">
共有
<bean:write   name= "page "   property= "totalRecords "   />
条记录   共分
<bean:write   name= "page "   property= "totalPages "   />
页   当前是第
<bean:write   name= "page "   property= "currentPage "   />

<logic:equal   name= "page "   property= "hasPrev "   value= "true ">
<html:link   page= "/page.do?action=previousPage "> 上一页 </html:link>
</logic:equal>
<logic:equal   name= "page "   property= "hasNext "   value= "true ">
<html:link   page= "/page.do?action=nextPage "> 下一页 </html:link>
</logic:equal>
</td>
</tr>
</logic:present>
</table>
</body>
</html:html>
望各位多多指教.....


[解决办法]
自己多调试一下,这是锻炼自己的好机会,我也调了很久分页才成功。

热点排行