国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

Bootstrap和Java分頁(yè)實(shí)例第二篇

2019-11-19 18:17:53
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

關(guān)于此文

  運(yùn)用第一篇分頁(yè)的例子,結(jié)果以失敗告終。在網(wǎng)上又尋找了很多例子。大多是都是這一種。著手開(kāi)發(fā)的項(xiàng)目采用spring MVC框架。符合需求。摘下來(lái),試了一試。

      網(wǎng)上的例子總是少一些東西。經(jīng)過(guò)一番折騰。終于搞定了。下面分享出來(lái),供參考。

      分頁(yè)基本邏輯思想懂了,重點(diǎn)是在于怎么實(shí)現(xiàn)。怎么實(shí)現(xiàn)更好。還需要進(jìn)一步思考。

配置xml-pager.tld

<?xml version="1.0" encoding="UTF-8" ?><taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0"> <description>Pager</description> <tlib-version>1.0</tlib-version> <short-name>page</short-name> <uri></uri> <tag>  <name>createPager</name>  <tag-class>getui.util.Pager</tag-class>  <body-content>JSP</body-content>  <attribute>   <name>curPage</name>   <required>true</required>   <rtexprvalue>true</rtexprvalue>   <type>java.lang.Integer</type>  </attribute>  <attribute>   <name>totalPage</name>   <required>true</required>   <rtexprvalue>true</rtexprvalue>   <type>java.lang.Integer</type>  </attribute>  <attribute>   <name>pageSize</name>   <required>true</required>   <rtexprvalue>true</rtexprvalue>   <type>java.lang.Integer</type>  </attribute>  <attribute>   <name>totalCount</name>   <required>true</required>   <rtexprvalue>true</rtexprvalue>   <type>java.lang.Integer</type>  </attribute>  <attribute>   <name>formId</name>   <required>true</required>   <rtexprvalue>true</rtexprvalue>   <type>java.lang.String</type>  </attribute> </tag></taglib>

分頁(yè)控件-Pager

package getui.util;import java.io.IOException;import javax.servlet.jsp.JspException;import javax.servlet.jsp.JspWriter;import javax.servlet.jsp.tagext.TagSupport;/*** * 分頁(yè)控件 *  * @author Anny */public class Pager extends TagSupport {  private Integer curPage;   //當(dāng)前頁(yè)碼  private Integer totalPage;  //總頁(yè)數(shù)  private Integer pageSize = 10; //一頁(yè)顯示的記錄數(shù)  private Integer totalCount = 0; //記錄總數(shù)  private String formId;   //請(qǐng)求的action name  private Integer lastIndex;  //結(jié)束索引  public int doStartTag() throws JspException {  StringBuffer buffer=new StringBuffer();  JspWriter out = pageContext.getOut();  int pageNumber = 0;  if (totalPage % pageSize == 0) {   pageNumber = totalPage / pageSize;  } else {   pageNumber = (totalPage / pageSize) + 1;  }  if (curPage < 1) {   curPage = 1;  }  try {   if (pageNumber > 0) {   buffer.append("<script type='text/javascript'>");//script-Start   buffer.append("function go(pageNum)");   buffer.append("{");//{start   buffer.append("var f = document.getElementById('" + formId + "');");   buffer.append("f.action = f.action + '?pageNum=' + pageNum + '&pageSize="+pageSize + "';");   buffer.append("f.submit();" );   buffer.append("}");//}end   buffer.append("</script>");//script-end      out.print(buffer.toString());   out.append("<div class='page-number-strip' style='height:62px;text-align: right;'> ");//page-number-strip   out.print("<ul class='pagination'>");//添加Bootstrap分頁(yè)的樣式pagination   int start = 1;   int end = totalPage;   for (int i = 4; i >= 1; i--) {    if ((curPage - i) >= 1) {    start = curPage - i;    break;    }   }   for (int i = 4; i >= 1; i--) {    if ((curPage + i) <= totalPage) {    end = curPage + i;    break;    }   }   // 如果小于9則右側(cè)補(bǔ)齊   if (end - start + 1 <= 9) {    Integer padLen = 9 - (end - start + 1);    for (int i = padLen; i >= 1; i--) {    if ((end + i) <= totalPage) {     end = end + i;     break;    }    }   }   // 如果還小于9左側(cè)補(bǔ)齊   if (end - start + 1 <= 9) {    Integer padLen = 9 - (end - start + 1);    for (int i = padLen; i >= 1; i--) {    if ((start - i) >= 1) {     start = start - i;     break;    }    }   }   if (curPage > 1) {    if (start > 1) {    out.print("<li><a href='javascript:go(1)'>首頁(yè)</a></li>");    }    out.print("<li><a href='javascript:go(" + (curPage - 1) + ")'>上一頁(yè)</a></li>");   }   for (int i = start; i <= end; i++) {    if (i == curPage) {    out.print("<li class='active'><a href='javascript:void(0);'>" + i + "</a></li>");    } else {    out.print("<li><a href='javascript:go(" + i + ")'>" + i + "</a></li>");    }   }   if (curPage < totalPage) {    out.print("<li><a href='javascript:go(" + (curPage + 1) + ")'>下一頁(yè)</a></li>");    if (end < totalPage) {    out.print("<li><a href='javascript:go(" + totalPage + ")'>尾頁(yè)</a></li>");    }   }   out.print("<li><a href='javascript:void(0)'>共" + totalPage + "頁(yè)" + this.totalCount + "條</a></li>");   out.print("</ul>");   out.print("</div>");   }  } catch (IOException e) {   e.printStackTrace();  }  return super.doStartTag();  }  /**  * 算開(kāi)始索引  *   * @param pageNum -   * @param pageSize  * @return  */  public static Integer getStartIndex(Integer pageNum, Integer pageSize) {  Integer res = 0;  if (pageNum > 0) {   res = (pageNum - 1) * pageSize;  }  return res;  }    /**  * 算結(jié)束索引 -- 方法暫時(shí)未用  *   * @param pageSize  * @param totalCount  * @param totalPage  * @param pageNum  * @return  */  public static Integer getLastIndex(Integer pageSize,Integer totalCount,Integer totalPage,Integer pageNum){    //計(jì)算結(jié)束時(shí)候的索引   Integer lastIndex =0;   if( totalCount < pageSize){    lastIndex = totalCount;   }else if((totalCount % pageSize == 0) || (totalCount % pageSize != 0 && pageNum < totalPage)){    lastIndex = pageNum * pageSize;   }else if(totalCount % pageSize != 0 && pageNum == totalPage){//最后一頁(yè)    lastIndex = totalCount ;   }   return lastIndex;  }      public Integer getLastIndex() {   return lastIndex;  }  public void setLastIndex(Integer lastIndex) {   this.lastIndex = lastIndex;  }  public void setCurPage(Integer curPage) {   this.curPage = curPage;  }  public void setPageSize(Integer pageSize) {  this.pageSize = pageSize;  }  public void setTotalPage(Integer totalPage) {  this.totalPage = totalPage;  }  public void setFormId(String formId) {  this.formId = formId;  }  public Integer getTotalCount() {  return totalCount;  }  public void setTotalCount(Integer totalCount) {  this.totalCount = totalCount;  }}

分頁(yè)action集成類(lèi)-BaseController

package getui.controller;import getui.util.Pager;import java.util.Iterator;import java.util.List;import java.util.Map;import org.springframework.ui.Model;/** * 分頁(yè)控件初始化父類(lèi) *  * @author Anny */public class BaseController { //初始化分頁(yè)相關(guān)信息 protected void initPage(Map<String,Object> map, Integer pageNum, Integer pageSize, Integer totalCount){  if(null==pageSize || pageSize.equals("")){   pageSize = 10; //每頁(yè)顯示條數(shù)  }//  if(pageSize>50){//   pageSize = 50;//  }  Integer totalPage = (totalCount+pageSize-1)/pageSize;  if(null==pageNum){   pageNum = 1;  }else if(pageNum>totalPage){   pageNum = totalPage;  }  map.put("startIndex", Pager.getStartIndex(pageNum, pageSize));  map.put("pageNum", pageNum);  map.put("totalPage", totalPage);  map.put("pageSize", pageSize);  map.put("totalCount", totalCount);  map.put("lastIndex", Pager.getLastIndex(pageSize,totalCount,totalPage,pageNum)); }  //將相關(guān)數(shù)據(jù)放入model protected void initResult(Model model, List<Map<String, Object>> list, Map<String,Object> map){  model.addAttribute("list", list);  Iterator it = map.entrySet().iterator();   while(it.hasNext()){    Map.Entry m = (Map.Entry)it.next();    model.addAttribute(m.getKey().toString(), m.getValue());  }  } }

實(shí)例-Dao

package getui.dao;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import java.util.Map;import org.apache.log4j.Logger;import org.springframework.dao.DataAccessException;import org.springframework.jdbc.core.ResultSetExtractor;import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource;import org.springframework.jdbc.core.namedparam.SqlParameterSource;import org.springframework.stereotype.Repository;import getui.controller.GeTuiController;import getui.entity.Branch;import getui.entity.GetuiInfo;@Repository("bookDao")public class BookDao extends BaseDao{  /** 日志記錄 .*/ private static Logger logger = Logger.getLogger(BookDao.class);  public int getListCount(){  String sql ="select count(1) from Book";  return super.jdbcTemplate.queryForInt(sql); }  public List getListBook(int pageIndex,int pageSize){  String sql = "select * from Book where 1=1 limit "+pageIndex+","+pageSize;    //  String sql = "select a.*"http://    + " from ("http://    +" select id as nid,name ,price"http://    +" from book"http://    +" order by(id) "http://    +" ) a"http://    +" where nid between "+pageIndex+" and "+pageSize+"";  return super.jdbcTemplate.queryForList(sql); } }

實(shí)例-service

package getui.service;import getui.dao.BookDao;import getui.dao.ClientInfoDao;import getui.entity.Branch;import getui.entity.GetuiInfo;import java.util.List;import java.util.Map;import org.apache.log4j.Logger;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;@Service("bookService")public class BookService {  /** 日志記錄 .*/ private static Logger logger = Logger.getLogger(BookService.class);  @Autowired private BookDao bookDao;   public int getListCount(){   return bookDao.getListCount();  }   public List getListBook(int pageIndex,int pageSize){   return bookDao.getListBook(pageIndex, pageSize);//   return bookDao.getListBook();  }}

實(shí)例-action

package getui.controller;import getui.service.BookService;import java.util.HashMap;import java.util.List;import java.util.Map;import org.apache.log4j.Logger;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;@Controller@RequestMapping(value = "/test")public class TestController extends BaseController {  /** 日志記錄 .*/ private static Logger logger = Logger.getLogger(TestController.class);  @Autowired private BookService bookService;  @RequestMapping("/test.do")  public String test(Model model,String type, @RequestParam(required=false) Integer pageNum,    @RequestParam(required=false) Integer pageSize) {       Map<String,Object> map = new HashMap<String,Object>();   map.put("type", type);  Integer totalCount = bookService.getListCount();      this.initPage(map, pageNum, pageSize, totalCount);   List list = this.bookService.getListBook(Integer.valueOf(String.valueOf(map.get("startIndex"))),             Integer.valueOf(String.valueOf(map.get("pageSize"))));  this.initResult(model, list, map);      return "book";  } }

實(shí)例-JSP

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib prefix="page" uri="/WEB-INF/pager.tld"%><% String path = request.getContextPath(); %><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!DOCTYPE html><html><head><title>測(cè)試分頁(yè)標(biāo)簽</title> <link href="<%=path%>/css/bootstrap.css" rel="stylesheet"> <link href="<%=path%>/css/bootstrap-responsive.css" rel="stylesheet"> <script type="text/javascript">  function toDel(id){    var url = "<%=path%>/test/del?id=" + id +"&pageNum=${param.pageNum}&pageSize=${param.pageSize}";    window.location.href = url;  } </script></head><body>  <div class="container">   <c:forEach items="${list}" var="item">     <div class="border-bottom1">     <h3><a href="<%=path%>/test/view?id=${item.id}">${item.name}</a></h3>     <p>      ${item.content}     </p>     <p class="text-right muted">      2013-06-22 22:37         <a href="javascript:toDel('${item.id}');">刪除</a>        <a href="<%=path%>/test/toEdit?id=${item.id}&pageNum=${param.pageNum}&pageSize=${param.pageSize}">編輯</a>       </p>    </div>   </c:forEach>   <form method="post" id="testForm" action="<%=path%>/test/test.do">    <input type="hidden" name="type" value="${type}">   </form>   <page:createPager pageSize="${pageSize}" totalPage="${totalPage}" totalCount="${totalCount}" curPage="${pageNum}" formId="testForm"/> </div> </body></html>

實(shí)例-SQL

/*Navicat MySQL Data TransferSource Server   : 本地庫(kù)Source Server Version : 50621Source Host   : localhost:3306Source Database  : testTarget Server Type : MYSQLTarget Server Version : 50621File Encoding   : 65001Date: 2016-01-13 12:37:11*/SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for `book`-- ----------------------------DROP TABLE IF EXISTS `book`;CREATE TABLE `book` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL, `price` int(11) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8;-- ------------------------------ Records of book-- ----------------------------INSERT INTO `book` VALUES ('1', '圖書(shū)1', '10');INSERT INTO `book` VALUES ('2', '圖書(shū)2', '11');INSERT INTO `book` VALUES ('3', '圖書(shū)3', '12');INSERT INTO `book` VALUES ('4', '圖書(shū)4', '13');INSERT INTO `book` VALUES ('5', '圖書(shū)5', '14');INSERT INTO `book` VALUES ('6', '圖書(shū)6', '15');INSERT INTO `book` VALUES ('7', '圖書(shū)7', '16');INSERT INTO `book` VALUES ('8', '圖書(shū)8', '17');INSERT INTO `book` VALUES ('9', '圖書(shū)9', '18');INSERT INTO `book` VALUES ('10', '圖書(shū)10', '19');INSERT INTO `book` VALUES ('11', '圖書(shū)11', '11');INSERT INTO `book` VALUES ('12', '圖書(shū)12', '23');INSERT INTO `book` VALUES ('13', '圖書(shū)13', '22');INSERT INTO `book` VALUES ('14', '圖書(shū)14', '22');INSERT INTO `book` VALUES ('15', '圖書(shū)15', '22');INSERT INTO `book` VALUES ('16', '圖書(shū)16', '9');INSERT INTO `book` VALUES ('17', '圖書(shū)17', '10');INSERT INTO `book` VALUES ('18', '圖書(shū)18', '2');INSERT INTO `book` VALUES ('19', '圖書(shū)19', '8');INSERT INTO `book` VALUES ('20', '圖書(shū)20', '78');INSERT INTO `book` VALUES ('21', '圖書(shū)21', '21');INSERT INTO `book` VALUES ('22', '圖書(shū)22', '22');INSERT INTO `book` VALUES ('23', '圖書(shū)23', '23');INSERT INTO `book` VALUES ('24', '圖書(shū)24', '24');

實(shí)例圖

測(cè)試示例圖

分頁(yè)融合到自己的代碼中示例圖

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 玛曲县| 永福县| 徐州市| 宜昌市| 集安市| 灯塔市| 吉木乃县| 永泰县| 南华县| 巫溪县| 准格尔旗| 四子王旗| 钟山县| 婺源县| 通辽市| 阜阳市| 灵山县| 蓝山县| 广汉市| 巍山| 陵川县| 固阳县| 盐山县| 马关县| 宣汉县| 余姚市| 兴安盟| 开平市| 大庆市| 顺平县| 崇仁县| 英吉沙县| 板桥市| 太湖县| 巫溪县| 湛江市| 方正县| 石家庄市| 五指山市| 云林县| 定结县|