分页实例(实例)

html

  <section style="height: 35px;width: 920px;margin: 0 auto;">
					<div class="limit-buy-nav" id="J-lbn">
						<a href="javascript:void(0)" class="prev"></a>
						<span>
							<em id="J-lbcp">0</em>/<em id="J-total">0</em>
						</span>
						<a href="javascript:void(0)" class="next"></a>
					</div>
				</section>

js

Array.prototype.indexOf = function(val) {
    for (var i = 0; i < this.length; i++) {
        if (this[i] == val) return i;
    }
    return -1;
};
Array.prototype.remove = function(val) {
    var index = this.indexOf(val);
    if (index > -1) {
        this.splice(index, 1);
    }
};
typePara.remove(text);//删除数组值(以上)

var lb_cur=1;//定义变量
$("#J-lbn a[class='prev'],#J-lbn a[class='next']").click(function(){
        if($(this).attr("class")=='prev'){
            lb_cur--;
            showLimitBuyProducts();
        }else if($(this).attr("class")=='next'){
            lb_cur++;
            showLimitBuyProducts();
        }
        loadRewardList(statusPara.toString(),typePara.toString(),$("#J-lbcp").text());    
    });
//分页处理部分
function showLimitBuyProducts() {
    if (lb_cur < 1) {
        lb_cur = 1;
    } else if (lb_cur > $("#J-total").text()) {
        lb_cur = $("#J-total").text();
    }
    $("#J-lbcp").html(lb_cur);
}    

java

package com.midai.util;

import java.util.Collections;
import java.util.List;

import net.sf.json.JSONArray;

/**
 * 分页对象
 * 
 * @author Feng
 *
 */
public class PaginationUtil {
	public int currentPage = 1; // 请求的页码
	public int pageSize = Constants.PAGE_SIZE; // 每页显示条数
	public int maxSize; // 元素个数
	public int totalPage; // 总共页数	
	//检索返回记录集
	private JSONArray message = new JSONArray();	// 结果集
	
	public PaginationUtil() {
		super();
	}

	public int getCurrentPage() {
		return currentPage;
	}

	public void setCurrentPage(int currentPage) {
		this.currentPage = currentPage;
	}

	public int getPageSize() {
		return pageSize;
	}

	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}

	public int getMaxSize() {
		return maxSize;
	}

	public void setMaxSize(int maxSize) {
		this.maxSize = maxSize;
	}

	public int getTotalPage() {
		return totalPage;
	}

	public void setTotalPage(int totalPage) {
		this.totalPage = totalPage;
	}

	public JSONArray getMessage() {
		return message;
	}

	public void setMessage(JSONArray message) {
		this.message = message;
	}

}

//父类Action
package com.midai.action;

import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;

import javax.servlet.ServletContext;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.ServletConfigInterceptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.google.gson.Gson;
import com.midai.util.PaginationUtil;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

/**
 * 
 * @Description: 共通Action基类
 * @Copyright: Copyright (c)2014-2015 
 * @author: yue.yan
 * @version: $$Rev: 35 $$
 * @param <T>
 * @date: $$Date: 2014-07-25 16:12:49 +0800 (Fri, 25 Jul 2014) $$
 * @lastUpdate: $$Author$$
 * 
 * Modification History:
 * Date			Author			Version			Description
 * -------------------------------------------------------------
 *
 */
@SuppressWarnings("serial")
public abstract class BaseAction extends ActionSupport {
	protected Logger logger = LoggerFactory.getLogger(BaseAction.class);
	public static Log systemLogger = LogFactory.getLog("System");
	
	//JSON数据对象
	private String jsonString;
	
	protected HttpServletRequest getRequest() {
		return ServletActionContext.getRequest();
	}
 
	protected HttpServletResponse getResponse() {
		return ServletActionContext.getResponse();
	}
	
	protected HttpSession getSession() {
		return getRequest().getSession();
	}
	
	protected ServletContext getApp() {
		return ServletActionContext.getServletContext();
	}
	
	//分页对象
	protected PaginationUtil page = new PaginationUtil();
	
	/**********************
	 * <pre>
	 * 		处理请求导出Excel文件,并且下载Excel到客户端对象
	 * </pre>
	 * @return	客户端响应对象对象
	 */
	public HttpServletResponse downloadExcelFile(){
		try
		{
		  // 设置响应的类型格式为电子表格格式
		  HttpServletResponse response = ServletActionContext.getResponse();
	      response.setCharacterEncoding("GBK");
		  response.setDateHeader("Expires", 0);
		  response.setHeader("Content-Transfer-Encoding","binary");//确保IE识别本次为下载文件      
		  response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");        
		  response.setHeader("Pragma", "public");   
		  response.setContentType("application/vnd.ms-excel;charset=GBK");//输出文件头   
		  return response;
		}catch (Exception e) 
		{
			return null;
		}
	}
	
	
	@SuppressWarnings({ "unchecked", "hiding" })
	public <T> Object toWebserviceBean(T fromBean, T toBean){
    	Gson gson = new Gson();  
    	String fromJson = gson.toJson(fromBean);
    	toBean = (T) gson.fromJson(fromJson, toBean.getClass());
    	return toBean;
    }

	
	/**
     * 对List对象按照某个成员变量进行排序
     * @param list       List对象
     * @param sortField  排序的属性名称
     * @param sortMode   排序方式:ASC,DESC 任选其一
     */
    public static <T> void sortList(List<T> list, final String sortField, final String sortMode) {
        Collections.sort(list, new Comparator<T>() {
            @Override
            public int compare(T o1, T o2) {
                try {
                	SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
                    Class<? extends Object> clazz = o1.getClass();
                    Field field = clazz.getDeclaredField(sortField); //获取成员变量
                    field.setAccessible(true); //设置成可访问状态
                    String typeName = field.getType().getName().toLowerCase(); //转换成小写

                    Object v1 = field.get(o1); //获取field的值
                    Object v2 = field.get(o2); //获取field的值

                    boolean ASC_order = (sortMode == null || "ASC".equalsIgnoreCase(sortMode));

                    //判断字段数据类型,并比较大小
                    if(typeName.endsWith("string")) {
                        String value1 = v1.toString();
                        String value2 = v2.toString();
                        return ASC_order ? value1.compareTo(value2) : value2.compareTo(value1);
                    }
                    else if(typeName.endsWith("short")) {
                        Short value1 = Short.parseShort(v1.toString());
                        Short value2 = Short.parseShort(v2.toString());
                        return ASC_order ? value1.compareTo(value2) : value2.compareTo(value1);
                    }
                    else if(typeName.endsWith("byte")) {
                        Byte value1 = Byte.parseByte(v1.toString());
                        Byte value2 = Byte.parseByte(v2.toString());
                        return ASC_order ? value1.compareTo(value2) : value2.compareTo(value1);
                    }
                    else if(typeName.endsWith("char")) {
                        Integer value1 = (int)(v1.toString().charAt(0));
                        Integer value2 = (int)(v2.toString().charAt(0));
                        return ASC_order ? value1.compareTo(value2) : value2.compareTo(value1);
                    }
                    else if(typeName.endsWith("int") || typeName.endsWith("integer")) {
                        Integer value1 = Integer.parseInt(v1.toString());
                        Integer value2 = Integer.parseInt(v2.toString());
                        return ASC_order ? value1.compareTo(value2) : value2.compareTo(value1);
                    }
                    else if(typeName.endsWith("long")) {
                        Long value1 = Long.parseLong(v1.toString());
                        Long value2 = Long.parseLong(v2.toString());
                        return ASC_order ? value1.compareTo(value2) : value2.compareTo(value1);
                    }
                    else if(typeName.endsWith("float")) {
                        Float value1 = Float.parseFloat(v1.toString());
                        Float value2 = Float.parseFloat(v2.toString());
                        return ASC_order ? value1.compareTo(value2) : value2.compareTo(value1);
                    }
                    else if(typeName.endsWith("double")) {
                        Double value1 = Double.parseDouble(v1.toString());
                        Double value2 = Double.parseDouble(v2.toString());
                        return ASC_order ? value1.compareTo(value2) : value2.compareTo(value1);
                    }
                    else if(typeName.endsWith("boolean")) {
                        Boolean value1 = Boolean.parseBoolean(v1.toString());
                        Boolean value2 = Boolean.parseBoolean(v2.toString());
                        return ASC_order ? value1.compareTo(value2) : value2.compareTo(value1);
                    }
                    else if(typeName.endsWith("date")) {
                    	if(v1==null){
                    		v1 = myFormatter.parse("1990-01-01"); 
                    	}
                    	if(v2==null){
                    		v2 = myFormatter.parse("1990-01-01"); 
                    	}
                        Date value1 = (Date)(v1);
                        Date value2 = (Date)(v2);
                        return ASC_order ? value1.compareTo(value2) : value2.compareTo(value1);
                    }
                    else if(typeName.endsWith("timestamp")) {
                        Timestamp value1 = (Timestamp)(v1);
                        Timestamp value2 = (Timestamp)(v2);
                        return ASC_order ? value1.compareTo(value2) : value2.compareTo(value1);
                    }
                    else {
                        //调用对象的compareTo()方法比较大小
                        Method method = field.getType().getDeclaredMethod("compareTo", new Class[]{field.getType()});
                        method.setAccessible(true); //设置可访问权限
                        int result  = (Integer)method.invoke(v1, new Object[]{v2});
                        return ASC_order ? result : result*(-1);
                    }
                }
                catch (Exception e) {
                    e.printStackTrace();
                }

                return 0; //未知类型,无法比较大小
            }
        });
    }


	public String getJsonString() {
		return jsonString;
	}

	public void setJsonString(String jsonString) throws IOException {
		PrintWriter out = getResponse().getWriter();
		out.println(jsonString);  
	    out.flush();  
	    out.close(); 
	}

	public PaginationUtil getPage() {
		return page;
	}

	public void setPage(PaginationUtil page) {
		this.page = page;
	}
	
	public void setCurrentPage(int currentPage) {
		page.setCurrentPage(currentPage);
	}

	public void setPageSize(int pageSize) {
		page.setPageSize(pageSize);
	}

	public void setMaxSize(int maxSize) {
		page.setMaxSize(maxSize);
	}

	public void setTotalPage(int totalPage) {
		page.setTotalPage(totalPage);
	}
	
	public JSONObject paging(JSONObject jsonObject) {
		JSONArray arr = new JSONArray();
		if(jsonObject.has("message")){
			arr = jsonObject.getJSONArray("message");
			
			page.setMaxSize(arr.size());

			// 截取每页交易记录
			int startIndex = (page.getCurrentPage() - 1) * page.getPageSize();
			int endIndex = startIndex + page.getPageSize();

			if ((endIndex + 1) > page.getMaxSize()) {
				endIndex = page.getMaxSize();
			}
			List list = arr.subList(startIndex, endIndex);

			// 获取最大页码
			if (page.getMaxSize() % page.getPageSize() == 0) {
				page.setTotalPage(page.getMaxSize() / page.getPageSize());
			} else {
				page.setTotalPage(page.getMaxSize() / page.getPageSize() + 1);
			}

			jsonObject.remove("message");
			jsonObject.put("message", list);
			jsonObject.put("maxSize", page.getMaxSize());
			jsonObject.put("totalPage", page.getTotalPage());
			jsonObject.put("currentPage", page.getCurrentPage());
			
		}
		
		
		return jsonObject;
	}
	
	/**
     * 添加Cookie
     * @return
     * @throws Exception
     */
	public void addCookie(String name,String value){
        Cookie cookie = new Cookie(name, value);
        cookie.setMaxAge(60*60*24*365);
       
        ServletActionContext.getResponse().addCookie(cookie);
    }
    /**
     * Cookie取得
     * @return
     * @throws Exception
     */
	public String getCookie(String name){
        HttpServletRequest request = ServletActionContext.getRequest();
        Cookie[] cookies = request.getCookies();
        for(Cookie cookie : cookies)
        {
            if(cookie.getName().equals(name))
            {
                return cookie.getValue();
            }
        }
        return null;
    }
	
	public boolean checkJSONobj(JSONObject obj){
		if(obj.has("success") && obj.getBoolean("success") && obj.get("message") != null && !"null".equals(obj.getString("message"))){
			return true;
		}else{
			return false;
		}
	}
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值