farmarker分页

来源:互联网 发布:淘宝微商城怎么开通 编辑:程序博客网 时间:2024/05/21 09:43

1. page.ftl文件

<#--

page 当前页码

totalpage 总页数

pageCount 每页条数

goUrl 分页请求url

 -->

<#macro p page totalpage>
   <#assign ipage=page>
   <#assign pCount=10>

    <#if(totalpage>9)>
  <ahref="javascript:pagination('1')">首页</a>
    </#if>
   <#-- 前一页 -->
   <#if ipage gt 1>
       <a href="javascript:pagination('${ipage -1}')">前页</a>
   <#else>
       <spanclass="disabled">前页</span>
   </#if>

  <#if(totalpage<10)>      <#-->总页数小于10的情况每页都显示<--> 
    <#list 1..totalpage as plist>
    <#if plist==ipage>
    <span class="current">${plist}</span>
   <#else>
    <ahref="javascript:pagination('${plist}')">${plist}</a>
   </#if>
    </#list>
  <#else>
   <#assignstart=ipage-4>
  
   <#if(start<1)>
   <#assignstart=1>
  </#if>

   <#assign end=start+8>
  
  <#if(end>totalpage)> 
   <#assign end =totalpage>
   <#assign start =end-8>
    <#if (start<1)>
    <#assignstart=1>
   </#if>
  </#if>

  <#liststart..end as plist>
    <#if plist==ipage>
    <span class="current">${plist}</span>
   <#else>
    <ahref="javascript:pagination('${plist}')">${plist}</a>
   </#if>
    </#list>
           
    </#if>

   <#-- 后一页 -->
   <#if ipage lt totalpage>
       <a href="javascript:pagination('${ipage +1}')">后页</a>
   <#else>
       <spanclass="disabled">后页</span>
   </#if>
     <#if(totalpage>9)>
  <ahref="javascript:pagination('${totalpage}')">末页</a>
    </#if>
   &nbsp;&nbsp;&nbsp;共${totalpage}页

 <scriptlanguage="javascript">
   function pagination(no){
    document.form.action="${goUrl}?pageCount=${pCount}&totalpage=${totalpage}&page="+no;
    document.form.submit();
   }
 </script>
</#macro>
2. jsp页面

引入模板

<#import "*/pages/page.ftl" aspager>
在显示分页处添加

<divclass=pagination><@pager.p page=pagetotalpage=totalpage/></div>

页面中添加form用于提交查询条件,注意name要和上面定义的一致

  <formname="form"  method="post">
 <INPUT TYPE="hidden"NAME="postdata" value='${postdata !""}'>
  </form>

css定义:

.pagination {
 padding: 10px;float:right;font-size:12px;
}

.pagination a, .pagination a:link, .pagination a:visited {
 padding: 2px 5px;margin: 2px;border: 1px solid#aaaadd;text-decoration: none;color: #006699;
 }
.pagination a:hover, .pagination a:active {
 border: 1px solid #ff0000;color:#000;text-decoration: none;
 }
.pagination span.current {
 padding: 2px 5px;margin: 2px;border: 1px solid#aaaadd;font-weight: bold;background-color: #336699;color:#FFF;
 }
.pagination span.disabled {
 padding: 2px 5px;margin: 2px;border: 1px solid#eee; color: #ddd;
 }

3. action

public class PageAction extends ActionSupport {

 
 private static final long serialVersionUID =6522655786306820295L;
 protected Integer totalpage;//总页数
 protected Integer page;//当前页
 protected Integer pageCount;//每页数
 protected String goUrl;
 
 public void prepare() throws Exception {
  super.prepare();
  if(page==null||page.equals("")||page==0)page=1;
  if(pageCount==null||pageCount.equals("")||pageCount==0)pageCount=10;
 }
 public boolean getTotal()
 {
  return(totalpage==null||totalpage.equals("")||totalpage==0);
 }
 public void setTotalpage(Integer totalpage){
  this.totalpage =totalpage;
 }
 public Integer getTotalpage() {
  return totalpage;
 }
 public void setPage(Integer page) {
  this.page = page;
 }
 public Integer getPage() {
  return page;
 }
 public void setPageCount(int pageCount) {
  this.pageCount =pageCount;
 }
 public int getPageCount() {
  return pageCount;
 }
 public void setGoUrl(String goUrl) {
  this.goUrl = goUrl;
 }
 public String getGoUrl() {
  return goUrl;
 }
}

 

public class StaffAction extends PageAction {

 
 private static final long serialVersionUID =-6987816268505928087L;
 private IManagerStaff managerStaff;

 privateList<Staff> stafflist;
 
 
 public void prepare() throws Exception {
  super.prepare();
  managerStaff=(IManagerStaff)this.context.getBean("managerStaff");
 }
  public String Query()
 {
   return"Query";
 }
 public String List()
 {

 //总页数为空时先查询总页数
  if(getTotal())totalpage=managerStaff.getTotalPage(pageCount);
  goUrl="StaffList.action";
  stafflist=managerStaff.List(page,pageCount);
  return "List";
 }
 public voidsetStafflist(List<Staff> stafflist){
  this.stafflist =stafflist;
 }
 public List<Staff>getStafflist() {
  return stafflist;
 }

  
}