bootstrap 分页
1.背景:
前端页面使用bootstrap分页,同时与搜索条件联动;
2. jsp页面由服务端返回后, 异步请求动态创建表格, 分页的数据由服务端第一次返回后初始化, 以后每次异步请求再更新。
jsp代码
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- %>
- <!DOCTYPE html>
- <html lang="en" class="no-ie" style="overflow:hidden">
- <head>
- <!-- Meta-->
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0">
- <meta name="description" content="">
- <meta name="keywords" content="">
- <meta name="author" content="">
- <title>Apollo - 签入记录</title>
- <link rel="stylesheet" href="../app/css/bootstrap.css">
- <link rel="stylesheet" href="../vendor/fontawesome/css/font-awesome.min.css">
- <link rel="stylesheet" href="../vendor/animo/animate+animo.css">
- <link rel="stylesheet" href="../vendor/datetimepicker/css/bootstrap-datetimepicker.min.css">
- <link rel="stylesheet" href="../vendor/datatable/extensions/datatable-bootstrap/css/dataTables.bootstrap.css">
- <link rel="stylesheet" href="../vendor/datatable/extensions/ColVis/css/dataTables.colVis.css">
- <link rel="stylesheet" href="../app/css/app.css">
- <link rel="stylesheet" href="../app/css/beadmin-theme-b3.css">
- <link rel="stylesheet" href="../app/css/page.css">
- <link rel="stylesheet" href="../vendor/sweetalert/lib/sweet-alert.css" />
- <script src="../vendor/modernizr/modernizr.js" type="application/javascript"></script>
- <script src="../vendor/fastclick/fastclick.js" type="application/javascript"></script>
- <script>
- var basePath = "<%=basePath%>";
- var pageNo = ${pageNo};
- var totalCount = ${totalCount};
- var pageSize = ${pageSize};
- var startNum = ${startNum};
- var stopNum = ${stopNum};
- </script>
- </head>
- <body style="overflow:hidden">
- <!-- START Main wrapper-->
- <div class="wrapper">
- <!-- START Main section-->
- <section>
- <!-- START Page content-->
- <div class="content-wrapper" style="margin-left:-250px;margin-top:-40px; ">
- <h3>签入记录
- <div style="float:right; margin-top:5px;" class="form-group">
- <button type="button" id="createBiztype" class="btn btn-labeled btn-info"> <span class="btn-label"><i class="fa fa-plus"></i> </span>新建</button>
- </div>
- </h3>
- <!-- START panel-->
- <!-- START DATATABLE 3-->
- <div class="row">
- <div class="col-lg-12">
- <div class="panel panel-default">
- <div class="panel-heading" style="border-bottom:1px solid #eee;">
- <form class="form-inline" id="" method="post" action="<%=path %>/page">
- <div class="form-group">
- <b>终端ID: </b>
- <input type="text" class="form-control mb-lg" id="terminalid" name="terminalid" value=''>
- </div>
- <div class="form-group">
- <b>标志: </b>
- <input type="text" class="form-control mb-lg" id="flag" name="flag" value=''>
- </div>
- <div class="form-group"> <a style="margin:-10px 0 0 5px; float:left;" href="javascript:void(0);" class="mb-sm btn btn-primary" type="button" id="searchButton">搜索</a> </div>
- <input type="hidden" id="pageNo" name="pageNo" value=''>
- </form>
- </div>
- <div class="table-responsive">
- <table class="table table-bordered table-hover dataTable no-footer" id="table-ext-1" >
- <thead>
- <tr>
- <th class="th200">标题</th>
- <th class="th200">节目ID</th>
- <th class="th800">创建时间</th>
- <th class="th200">媒体类型</th>
- <th class="th200">标志</th>
- <th class="th200">进度</th>
- <th class="th200">供应商</th>
- <th class="th200">操作</th>
- </tr>
- </thead>
- <tbody id="checkinRequest_tbody">
- </tbody>
- <tfoot>
- <tr> </tr>
- </tfoot>
- </table>
- </div>
- <div class="panel-footer">
- <div class="row">
- <div style="line-height:35px;" class="col-lg-2">
- <div class="input-group pull-left" id="checkinRequest_showlines"> </div>
- </div>
- <div class="col-lg-8"></div>
- <div class="tcdPageCode"></div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <!-- END DATATABLE 3-->
- </div>
- <!-- END Page content-->
- </section>
- <!-- END Main section-->
- </div>
- <!-- END Main wrapper-->
- <!-- START modal-->
- <div id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" class="modal" >
- <div class="modal-dialog" style="width:400px; margin-top:200px;">
- <div class="modal-content">
- <div class="modal-header">
- <button type="button" data-dismiss="modal" aria-hidden="true" class="close" id="cancelAdd" >×</button>
- <h4 id="myModalLabel" class="modal-title">新建签入记录</h4>
- </div>
- <div class="modal-body">
- <div class="table-responsive">
- <form>
- <ul class="serinfo">
- <li>
- <div class="form-group">
- <b>名称: </b>
- <input type="text" id="addTypeName" class="form-control mb-lg" maxLength=50>
- </div>
- </li>
- </ul>
- <ul class="serinfo">
- <li>
- <div class="form-group">
- <b>描述: </b>
- <input type="text" id="addTypeDesc" class="form-control mb-lg" maxLength=100>
- </div>
- </li>
- </ul>
- </form>
- </div>
- </div>
- <div class="modal-footer">
- <button type="button" data-dismiss="modal" class="btn btn-default">取消</button>
- <button type="button" class="btn btn-primary" id="confirmCreate" >确定</button>
- </div>
- </fieldset>
- </div>
- </div>
- </div>
- <div id="myModaledit" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" class="modal" >
- <div class="modal-dialog" style="width:400px; margin-top:200px;">
- <div class="modal-content">
- <div class="modal-header">
- <button type="button" data-dismiss="modal" aria-hidden="true" class="close" id="cancelEdit" >×</button>
- <h4 id="myModalLabel" class="modal-title">编辑签入记录</h4>
- </div>
- <div class="modal-body">
- <div class="table-responsive">
- <form>
- <ul class="serinfo">
- <li>
- <div class="form-group">
- <b>名称: </b>
- <input type="text" id="editTypeName" class="form-control mb-lg" maxLength=50>
- </div>
- </li>
- </ul>
- <ul class="serinfo">
- <li>
- <div class="form-group">
- <b>描述: </b>
- <input type="text" id="editTypeDesc" class="form-control mb-lg" maxLength=100>
- </div>
- </li>
- </ul>
- </form>
- </div>
- </div>
- <div class="modal-footer">
- <button type="button" data-dismiss="modal" class="btn btn-default">取消</button>
- <button type="button" class="btn btn-primary" id="confirmEdit" >确定</button>
- </div>
- </fieldset>
- </div>
- </div>
- </div>
- </div>
- </div>
- <!-- END modal-->
- <!-- START Scripts-->
- <!-- Main vendor Scripts-->
- <script src="../vendor/jquery/jquery.min.js"></script>
- <script src="../vendor/sweetalert/lib/sweet-alert.min.js"></script>
- <script src="../vendor/bootstrap/js/bootstrap.min.js"></script>
- <script src="../vendor/chosen/chosen.jquery.min.js"></script>
- <script src="../vendor/slider/js/bootstrap-slider.js"></script>
- <script src="../vendor/filestyle/bootstrap-filestyle.min.js"></script>
- <script src="../vendor/animo/animo.min.js"></script>
- <script src="../vendor/moment/min/moment-with-langs.min.js"></script>
- <script src="../vendor/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
- <script src="../vendor/slimscroll/jquery.slimscroll.min.js"></script>
- <script src="../vendor/store/store+json2.min.js"></script>
- <script src="../vendor/screenfull/screenfull.min.js"></script>
- <script src="../vendor/datatable/media/js/jquery.dataTables.min.js"></script>
- <script src="../vendor/datatable/extensions/datatable-bootstrap/js/dataTables.bootstrap.js"></script>
- <script src="../vendor/datatable/extensions/datatable-bootstrap/js/dataTables.bootstrapPagination.js"></script>
- <script src="../vendor/datatable/extensions/ColVis/js/dataTables.colVis.min.js"></script>
- <script src="../vendor/wizard/js/bwizard.min.js"></script>
- <script src="../vendor/parsley/parsley.min.js"></script>
- <script src="../app/js/app.js"></script>
- <script src="../script/commonutil.js"></script>
- <script src="../app/js/page.js"></script>
- <script src="../script/checkinRequest.js"></script>
- <!-- END Scripts-->
- </body>
- </html>
js代码
- $(function(){
- initTable();
- $('.tcdPageCode').extendPagination({
- pageId : pageNo,
- totalCount : totalCount,
- showPage : 5,
- limit : pageSize,
- callback : function(pageNo, limit, totalCount) {
- checkinRequestSearch(pageNo);
- }
- });
- $("#searchButton").on('click',function(){
- checkinRequestSearch(pageNo);
- });
- });
- function initTable(){
- $.ajax({
- url : basePath + "page/checkinRequest_list.action",
- type : "get",
- dataType : "json",
- success : function(dataMap){
- createTBody(dataMap);
- createTFoot();
- },
- error : function(errorData){
- }
- });
- }
- function createTBody(dataMap){
- if(dataMap!=null){
- var html = [];
- var checkinRequestList = dataMap.checkinRequestList;
- for(var i=0; i<checkinRequestList.length; i++){
- var checkinRequest = checkinRequestList[i];
- html.push('<tr class="gradeX center">');
- html.push('<td style="text-align:left;">'+checkinRequest.title+'</td>');
- html.push('<td style="text-align:left;">'+checkinRequest.assetguid+'</td>');
- html.push('<td style="text-align:left;">'+checkinRequest.createtime+'</td>');
- html.push('<td style="text-align:left;">'+checkinRequest.mediatype+'</td>');
- html.push('<td style="text-align:left;">'+checkinRequest.flag+'</td>');
- html.push('<td style="text-align:left;">'+checkinRequest.progress+'</td>');
- html.push('<td style="text-align:left;">'+checkinRequest.provider+'</td>');
- html.push('<td><a href="#" class="checkin_view btn btn-default btn-xs"> 查看 </a></td>');
- html.push('</tr>');
- }
- $("#checkinRequest_tbody").empty().html(html.join(''));
- }
- }
- function createTFoot(dataMap){
- var reloadPagination = false;
- if(dataMap!=null){
- startNum = dataMap.startNum;
- stopNum = dataMap.stopNum;
- reloadPagination = totalCount==dataMap.totalCount?false:true
- totalCount = dataMap.totalCount;
- pageNo = dataMap.pageNo;
- //pageSize = dataMap.pageSize;
- }
- var str = '显示 ' + startNum + '至' + stopNum + '项 , 共' + totalCount +' 项。';
- $("#checkinRequest_showlines").empty().html(str);
- if(totalCount=='0'){
- $('.tcdPageCode').empty();
- }else if($('.tcdPageCode').html()=='' || reloadPagination){//
- $('.tcdPageCode').extendPagination({
- pageId : pageNo,
- totalCount : totalCount,
- showPage : 5,
- limit : pageSize,
- callback : function(pageNo, limit, totalCount) {
- checkinRequestSearch(pageNo);
- }
- });
- }
- }
- function checkinRequestSearch(pageNo){
- var terminalid = $("#terminalid").val();
- var flag = $("#flag").val();
- $.ajax({
- url : basePath + "page/checkinRequest_search.action",
- type : "post",
- data : {
- "pageNo" : pageNo,
- "terminalid" : terminalid,
- "flag" : flag
- },
- dataType : "json",
- success : function(dataMap){
- createTBody(dataMap);
- createTFoot(dataMap);
- },
- error : function(errorData){
- }
- });
- }
bootStrapPager分页插件
- /**
- * Created by Hope on 2014/12/28.
- */
- (function ($) {
- $.fn.extendPagination = function (options) {
- var defaults = {
- pageId:'',
- totalCount: '',
- showPage: '10',
- limit: '5',
- callback: function () {
- return false;
- }
- };
- $.extend(defaults, options || {});
- // alert(defaults.pageId);
- if (defaults.totalCount == '') {
- //alert('总数不能为空!');
- $(this).empty();
- return false;
- } else if (Number(defaults.totalCount) <= 0) {
- //alert('总数要大于0!');
- $(this).empty();
- return false;
- }
- if (defaults.showPage == '') {
- defaults.showPage = '10';
- } else if (Number(defaults.showPage) <= 0)defaults.showPage = '10';
- if (defaults.limit == '') {
- defaults.limit = '5';
- } else if (Number(defaults.limit) <= 0)defaults.limit = '5';
- var totalCount = Number(defaults.totalCount), showPage = Number(defaults.showPage),
- limit = Number(defaults.limit), totalPage = Math.ceil(totalCount / limit);
- if (totalPage > 0) {
- var html = [];
- html.push(' <ul class="pagination">');
- html.push(' <li class="previous"><a href="#">«</a></li>');
- html.push('<li class="disabled hidden"><a href="#">...</a></li>');
- if (totalPage <= showPage) {
- for (var i = 1; i <= totalPage; i++) {
- if (i == defaults.pageId) html.push(' <li class="active"><a href="#">' + i + '</a></li>');
- else html.push(' <li><a href="#">' + i + '</a></li>');
- }
- } else {
- for (var j = 1; j <= showPage; j++) {
- if (j == defaults.pageId) html.push(' <li class="active"><a href="#">' + j + '</a></li>');
- else html.push(' <li><a href="#">' + j + '</a></li>');
- }
- }
- html.push('<li class="disabled hidden"><a href="#">...</a></li>');
- html.push('<li class="next"><a href="#">»</a></li></ul>');
- $(this).html(html.join(''));
- if (totalPage > showPage) $(this).find('ul.pagination li.next').prev().removeClass('hidden');
- var pageObj = $(this).find('ul.pagination'), preObj = pageObj.find('li.previous'),
- currentObj = pageObj.find('li').not('.previous,.disabled,.next'),
- nextObj = pageObj.find('li.next');
- function loopPageElement(minPage, maxPage) {
- var tempObj = preObj.next();
- for (var i = minPage; i <= maxPage; i++) {
- if (minPage == 1 && (preObj.next().attr('class').indexOf('hidden')) < 0)
- preObj.next().addClass('hidden');
- else if (minPage > 1 && (preObj.next().attr('class').indexOf('hidden')) > 0)
- preObj.next().removeClass('hidden');
- if (maxPage == totalPage && (nextObj.prev().attr('class').indexOf('hidden')) < 0)
- nextObj.prev().addClass('hidden');
- else if (maxPage < totalPage && (nextObj.prev().attr('class').indexOf('hidden')) > 0)
- nextObj.prev().removeClass('hidden');
- var obj = tempObj.next().find('a');
- if (!isNaN(obj.html()))obj.html(i);
- tempObj = tempObj.next();
- }
- }
- function callBack(curr) {
- defaults.callback(curr, defaults.limit, totalCount);
- }
- currentObj.click(function (event) {
- event.preventDefault();
- var currPage = Number($(this).find('a').html()), activeObj = pageObj.find('li[class="active"]'),
- activePage = Number(activeObj.find('a').html());
- if (currPage == activePage) return false;
- if (totalPage > showPage) {
- var maxPage = currPage, minPage = 1;
- if (($(this).prev().attr('class'))
- && ($(this).prev().attr('class').indexOf('disabled')) >= 0) {
- minPage = currPage - 1;
- maxPage = minPage + showPage - 1;
- loopPageElement(minPage, maxPage);
- } else if (($(this).next().attr('class'))
- && ($(this).next().attr('class').indexOf('disabled')) >= 0) {
- if (totalPage - currPage >= 1) maxPage = currPage + 1;
- else maxPage = totalPage;
- if (maxPage - showPage > 0) minPage = (maxPage - showPage) + 1;
- loopPageElement(minPage, maxPage)
- }
- }
- activeObj.removeClass('active');
- $.each(currentObj, function (index, thiz) {
- if ($(thiz).find('a').html() == currPage) {
- $(thiz).addClass('active');
- callBack(currPage);
- }
- });
- });
- preObj.click(function (event) {
- event.preventDefault();
- var activeObj = pageObj.find('li[class="active"]'), activePage = Number(activeObj.find('a').html());
- if (activePage <= 1) return false;
- if (totalPage > showPage) {
- var maxPage = activePage, minPage = 1;
- if ((activeObj.prev().prev().attr('class'))
- && (activeObj.prev().prev().attr('class').indexOf('disabled')) >= 0) {
- minPage = activePage - 1;
- if (minPage > 1) minPage = minPage - 1;
- maxPage = minPage + showPage - 1;
- loopPageElement(minPage, maxPage);
- }
- }
- $.each(currentObj, function (index, thiz) {
- if ($(thiz).find('a').html() == (activePage - 1)) {
- activeObj.removeClass('active');
- $(thiz).addClass('active');
- callBack(activePage - 1);
- }
- });
- });
- nextObj.click(function (event) {
- event.preventDefault();
- var activeObj = pageObj.find('li[class="active"]'), activePage = Number(activeObj.find('a').html());
- if (activePage >= totalPage) return false;
- if (totalPage > showPage) {
- var maxPage = activePage, minPage = 1;
- // if ((activeObj.next().next().attr('class'))
- // && (activeObj.next().next().attr('class').indexOf('disabled')) >= 0) {
- // maxPage = activePage + 2;
- // if (maxPage > totalPage) maxPage = totalPage;
- // minPage = maxPage - showPage + 1;
- // loopPageElement(minPage, maxPage);
- // }
- if ((activeObj.next().next().attr('class'))
- && (activeObj.next().next().attr('class').indexOf('disabled')) >= 0) {
- maxPage = activePage + 2;
- if (maxPage > totalPage) maxPage = totalPage;
- minPage = maxPage - showPage + 1;
- loopPageElement(minPage, maxPage);
- }
- }
- $.each(currentObj, function (index, thiz) {
- if ($(thiz).find('a').html() == (activePage + 1)) {
- activeObj.removeClass('active');
- $(thiz).addClass('active');
- callBack(activePage + 1);
- }
- });
- });
- }
- };
- })(jQuery);
action代码
- package com.cdv.apollo.action;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import javax.annotation.Resource;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpSession;
- import org.apache.commons.lang.StringUtils;
- import org.apache.struts2.ServletActionContext;
- import com.aliyun.oss.common.comm.ServiceClient.Request;
- import com.cdv.apollo.model.CheckinRequest;
- import com.cdv.apollo.service.CheckInRequestService;
- import com.cdv.apollo.util.PageParameter;
- import com.cdv.msf.sdk.UserClient;
- import com.opensymphony.xwork2.ActionSupport;
- import net.sf.json.JSONObject;
- public class CheckinRequestAction extends ActionSupport {
- /**
- *
- */
- private static final long serialVersionUID = -7230950957476388246L;
- private Map<String, Object> dataMap = new HashMap<String, Object>();
- public Map<String, Object> getDataMap() {
- return dataMap;
- }
- @Resource
- private CheckInRequestService checkInRequestService;
- public String index(){
- HttpServletRequest request = ServletActionContext.getRequest();
- PageParameter page = new PageParameter();
- int totalCount = checkInRequestService.countTotalRecords();
- // int totalPage = totalCount%page.getPageSize()==0?totalCount/page.getPageSize():totalCount/page.getPageSize()+1;
- int startNum = 0, stopNum = 0;
- if((startNum+page.getPageSize())<=totalCount){
- startNum = 1;
- stopNum = startNum+page.getPageSize()-1;
- }else if(totalCount>0){
- startNum = 1;
- stopNum = totalCount;
- }
- request.setAttribute("startNum", startNum);
- request.setAttribute("stopNum", stopNum);
- request.setAttribute("totalCount", totalCount);
- request.setAttribute("pageNo", page.getPageNo());
- request.setAttribute("pageSize", page.getPageSize());
- return "index";
- }
- public String list(){
- dataMap.clear();
- List<CheckinRequest> checkinRequestList = checkInRequestService.list(-1, null, null, null, null, null, 0, 10);
- dataMap.put("checkinRequestList", checkinRequestList);
- return SUCCESS;
- }
- public String search(){
- dataMap.clear();
- PageParameter page = new PageParameter();
- int s = 0, max = 10, pageNo = 1, flag=-1;
- int startNum = 0, stopNum = 0;
- HttpServletRequest request = ServletActionContext.getRequest();
- String pageNoStr = (String) request.getParameter("pageNo");
- String terminalid = (String) request.getParameter("terminalid");
- String flagStr = (String) request.getParameter("flag");
- if(StringUtils.isNotEmpty(flagStr)){
- flag = Integer.parseInt(flagStr);
- }
- int totalCount = checkInRequestService.count2Terminal(terminalid, flag);
- int totalPage = totalCount%page.getPageSize()==0?totalCount/page.getPageSize():totalCount/page.getPageSize()+1;
- if(StringUtils.isNotEmpty(pageNoStr)){
- pageNo = Integer.parseInt(pageNoStr);
- pageNo = pageNo<=totalPage?pageNo:1;
- s = (pageNo-1)*10;
- }
- List<CheckinRequest> checkinRequestList = checkInRequestService.list2Terminal(terminalid, flag, s, max);
- if(totalCount>0){
- startNum = (pageNo-1)*page.getPageSize() + 1;
- stopNum = (startNum-1+page.getPageSize())<=totalCount?(startNum-1+page.getPageSize()):totalCount;
- }
- dataMap.put("startNum", startNum);
- dataMap.put("stopNum", stopNum);
- dataMap.put("totalCount", totalCount);
- dataMap.put("pageNo", pageNo);
- dataMap.put("checkinRequestList", checkinRequestList);
- return SUCCESS;
- }
- }
struts配置
- <package name="homepage" namespace="/" extends="json-default">
- <action name="checkinRequest_*" class="com.cdv.apollo.action.CheckinRequestAction"
- method="{1}">
- <result name="index">/page/checkinRequest.jsp</result>
- <result name="success" type="json">
- <param name="root">dataMap</param>
- </result>
- </action>
- </package>
bootstrap 分页的更多相关文章
- bootstrap分页
使用bootstrap分页插件,如下代码是html代码 <title>分页</title> <link href="page/bootstrap-3.3.5-d ...
- bootstrap 分页样式代码
bootstrap 分页样式代码,废话不多说,直接上源码 <!DOCTYPE html> <html> <head> <title>Bootstrap ...
- Bootstrap 分页插件 ajax获取数据显示
Bootstrap 分页插件 ajax获取数据显示 标签(空格分隔): bootstrap 文章的内容是使用bootstrap-paginator进行分页,使用ajax获取后台数据.渲染. 1. 版本 ...
- bootstrap分页插件的使用
项目中需要实现文章列表的分页显示,由于使用了bootstrap框架,所以我们选择bootstrap的分页实现方法.网上有一些这方面的介绍文章,并且也有相关的示例程序.这里结合我们的项目,介绍一下使用b ...
- Bootstrap分页插件ajax返回数据,工具类的编写
使用Bootstrap分页插件时,需要返回指定的参数,这样Bootstrap才能够识别 需要引入的css: <!-- boostrap table --> <link href=&q ...
- yii使用bootstrap分页样式
Bootstrap是Twitter推出的一个开源的用于前端开发的工具包.它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架.Bootstra ...
- bootstrap 分页表格插件
找了两个table的插件,一个是bootstrap table ,另一个是bootstrap-paginator 这里只介绍 bootstrap table 插件 使用及简单案例 文档介绍:http: ...
- Bootstrap分页插件--Bootstrap Paginator
开源中国有一篇介绍的很详细,链接:https://my.oschina.net/shunshun/blog/204587 使用这个插件和使用其他Bootstrap内置的插件一样,需要引入如下文件: & ...
- bootstrap分页插件--Bootstrap Paginator的使用&AJAX版备份(可单独使用)
html部分: <ul class="pagination"></ul> <!--bootstrap3版本用ul包裹--> <div cl ...
随机推荐
- 使用Condition实现多线程之间调用(生产消费模式)
一,object 类的wait(),notify()和notifyAll() Java 线程类也是一个object 类,它的实例都继承自java.lang.Thread 或其子类.wait(),not ...
- Oracle 10gR2 & 10.2.0.5 的百度网盘下载地址 :)
如题: https://pan.baidu.com/s/1eSI770m
- [原]OpenGL基础教程(二)多边形绘制
上篇介绍了最基本的三角形绘制,本篇介绍如何使用索引的方式绘制多边行. 为什么要使用索引方式,总体来说提高性能.如何提高:使用顶点数组的好处是避免大量的函数调用.即避免每画一个顶点就调用1次glVert ...
- MMS关键指标意义&各数值区间意义
MMS关键指标意义&各数值区间意义 What's MMS MongoDB Management Service (MMS) is a suite of services for managin ...
- 即将放出ITSEC第一期所有培训视频
课程大概被分为三个章节 客户端安全培训 安全工具培训 服务端安全培训 部分PPT 详细课程表 FireBug代码调试工具使用:工具介绍 FireBu ...
- sqlserver 字符串最后一次的位置,截取字符串
--reverse:字符串倒排 SUBSTRING(字段,1,len(字段)- CHARINDEX('-',REVERSE(字段)))
- [PaPaPa][需求说明书][V2.0]
前 言 大家好,我是“今晚打老虎”. 什么? 你问我为什么这次亮字号了? 还不是因为哥太出名了,即使我不亮你们也知道是我写的了. 自从发布了V1.0版本之后.群里又进来好多人.30K大大分发的任务 ...
- 注解Annotation 详解(转)
要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法. 元注解: 元注解的作用就是负责注解其他注解.Java5. ...
- jetty服务器的安装和部署、新增到开机启动服务
Jetty的首页地址是http://www.mortbay.org/jetty/,点击Downloads进入下载介绍页面,由于Jetty7之后,托管服务有Eclipse接替,所以jetty6.1之前( ...
- 由于无法创建应用程序域,因此未能执行请求。错误: 0x80070002 系统找不到指定的文件
前两天安装了一堆补丁后突然发现,原本正常使用了一年的应用系统打不开了,到事件日志中发现有.net framewok 2.0的补丁安装失败的日志,于从从重装补丁开始.到重新注册.net框架,再到所有.n ...