jqgrid 分页javar端使用

上一篇文章简单的讲了我在项目中jqgrid前端分页的一些内容,这篇就从后端来看一下如何分页

项目中struts2+spring+hibernate3

<span style="font-size:18px;">package com.ibm.pims.framework.server.support;

import java.io.IOException;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import javax.servlet.http.HttpServletResponse;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.struts2.ServletActionContext;

import com.ibm.pims.framework.server.metadata.Page;
import com.ibm.pims.framework.server.struts.AjaxResult;
import com.ibm.pims.framework.server.struts.AjaxResult.ErrorType;

public class JqGridBaseAction<T> extends BaseAction {
	
	private static final long serialVersionUID = 2114802374736799234L;
	private boolean search;
	private int rows; //记录数
	private int page;//当前页
	private int rowNum;//每页显示行数
	private String nd;
	private String sidx;
	private String sord;
	private Map<String, String> searchFields = new HashMap<String, String>(0);
	private Map<String, String[]> searchArrays = new HashMap<String, String[]>(0);

	
	 
	public void populateJqGridData() {
		@SuppressWarnings("rawtypes")
		Map parameters = ServletActionContext.getRequest().getParameterMap();

		@SuppressWarnings("unchecked")
		Set<String> keys = parameters.keySet();
		for (String key : keys) {
			String[] values = (String[]) parameters.get(key);

			if ("sidx".equals(key)) {
				if ((null != values) && (values.length > 0))
					this.sidx = values[0];
			} else if ("sord".equals(key)) {
				if ((null != values) && (values.length > 0))
					this.sord = values[0];
			} else if ("_search".equals(key)) {
				if ((null != values) && (values.length > 0))
					this.search = Boolean.parseBoolean(values[0]);
			} else if ("rows".equals(key)) {
				if ((null != values) && (values.length > 0))
					this.rows = Integer.parseInt(values[0]);
			} else if ("page".equals(key)) {
				if ((null != values) && (values.length > 0))
					this.page = (Integer.parseInt(values[0]) - 1);
			} else if ("nd".equals(key)) {
				if ((null != values) && (values.length > 0))
					this.nd = values[0];
			} else if ("rowNum".equals(key)) {
				if ((null != values) && (values.length > 0)) {
					this.rowNum = Integer.parseInt(values[0]);
					pageSize = this.rowNum;
				}
			} else if (key.endsWith("Array")) {
				this.searchArrays.put(key, values);
			} else {
				if (key.equals("pageCache")) {
					continue;
				}

				if ((null != values) && (values.length > 0))
					this.searchFields.put(key, values[0]);
			}
		}
	}

	public Map<String, String[]> getSearchArrays() {
		return this.searchArrays;
	}

	public void setSearchArrays(Map<String, String[]> searchArrays) {
		this.searchArrays = searchArrays;
	}

	public boolean isSearch() {
		return this.search;
	}

	public void setSearch(boolean search) {
		this.search = search;
	}

	public int getRows() {
		return this.rows;
	}

	public void setRows(int rows) {
		this.rows = rows;
	}

	public int getPage() {
		return this.page;
	}

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

	public String getNd() {
		return this.nd;
	}

	public void setNd(String nd) {
		this.nd = nd;
	}

	public String getSidx() {
		return this.sidx;
	}

	public void setSidx(String sidx) {
		this.sidx = sidx;
	}

	public String getSord() {
		return this.sord;
	}

	public void setSord(String sord) {
		this.sord = sord;
	}

	public int getRowNum() {
		return this.rowNum;
	}

	public void setRowNum(int rowNum) {
		this.rowNum = rowNum;
	}

	public Map<String, String> getSearchFields() {
		return this.searchFields;
	}

	public void setSearchFields(Map<String, String> searchFields) {
		this.searchFields = searchFields;
	}
}</span>
在相应的Action继承jqgridbaseAction使用分页的时候就可以把分页信息通过getPageSize和getPage()带到DAO层了

其中的成员变量对应着jqGrid的prmNames和jsonReader中的设置。

 

成员变量 对应 prmNames 对应 jsonReader 注释
rows rows - 每页中现实的记录行数
search search - 是否是用于查询的请求
sidx sort - 用于排序的列名
sord order - 排序的方式
page page page 当前页码
gridModel - root 用于得到实际数据的数组名称
total - total 总页数
record - records 总记录数
上个表格中的一些属性在上篇博文有介绍,表格来源http://blog.csdn.net/gengv/article/details/5714834#

昨天jqgird的分页点击next怎么也没有效果,查阅n多资料都不行后来clean project ,重启项目清除IE缓存发现分页居然可以了,很郁闷。。。。



你可能感兴趣的:(jqgrid 分页javar端使用)