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;
}
}
}