分页处理

package cn.xhsd.util.split;

import javax.servlet.http.HttpServletRequest;

import cn.xhsd.action.abs.AbstractAction;

public class SplitUtil {
	private int cp = 1;
	private int ls = 3;
	private String col;
	private String kw;
	private AbstractAction action;

	
	public SplitUtil(AbstractAction action) { // 取得公共的Action
		this.action = action;
	}

	public void setCp(String cp) {
		try {
			this.cp = Integer.parseInt(cp);
		} catch (Exception e) {
		}
	}

	public void setLs(String ls) {
		try {
			this.ls = Integer.parseInt(ls);
		} catch (Exception e) {
		}
	}

	public void setCol(String col) {
		if (col == null || "".equals(col)) {
			this.col = this.action.getDefaultColumn();
		} else {
			this.col = col;
		}
	}

	public void setKw(String kw) {
		if ("".equals(kw) || kw == null) {
			this.kw = "";
		} else {
			this.kw = kw;
		}
	}

	public int getCurrentPage() {
		return cp;
	}

	public int getLineSize() {
		return ls;
	}

	public String getColumn() {
		return col;
	}

	public String getKeyword() {
		return kw;
	}
 
	/**
	 * 将查询的数据和记录数据设置到页面中
	 * @param request
	 * @param allRecorders
	 * @param url
	 * @param paramA
	 * @param valueA
	 * @param paramB
	 * @param valueB
	 */
	public void setAttribute(HttpServletRequest request, Object allRecorders,
			String url, String paramA, Object valueA, String paramB,
			Object valueB) {
		
		request.setAttribute("allRecorders", allRecorders);
		request.setAttribute("url", url);
		request.setAttribute("paramName", paramA);
		request.setAttribute("paramValue", valueA);
		request.setAttribute("paramNameB", paramB);
		request.setAttribute("paramValueB", valueB);
	}
}



/**
 * 专门抽取action中公有的属性或方法
 * @author fy
 * @version 1.0
 */
public abstract class AbstractAction {

	/**
	 * SpringMVC 分页
	 * @param request
	 * @param currentPage
	 * @param lineSize
	 * @param column
	 * @param keyWord
	 * @param split
	 */
	public void handleSplit1(HttpServletRequest request,Integer currentPage,Integer lineSize,String column,String keyWord,SplitUtil split) {
		split.setCp(String.valueOf(currentPage));
		split.setLs(String.valueOf(lineSize));
		split.setKw(keyWord);
		split.setCol(column);
		
		
		// 将这些内容传递到JSP页面上
		request.setAttribute("currentPage", split.getCurrentPage());
		request.setAttribute("lineSize", split.getLineSize());
		request.setAttribute("column", split.getColumn());
		request.setAttribute("keyWord", split.getKeyword());
		request.setAttribute("columnData", this.getColumnData());
	}


	@RequestMapping("listBySplit")
	public ModelAndView listBySplit( 
			     @RequestParam(value="cp",defaultValue="1") Integer currentPage,
			     @RequestParam(value="ls",defaultValue="3") Integer lineSize,
			     @RequestParam(value="col",defaultValue="title") String column,
			     @RequestParam(value="kw",defaultValue="") String keyWord,
			     HttpServletRequest request
			){
		ModelAndView mav=new ModelAndView();
		Map<String,Object> map = this.bikeBackService.listBySplit(currentPage,lineSize,column,keyWord);
		@SuppressWarnings("unchecked")
		List<Bike> allBikes=(List<Bike>)map.get("allBikes");
		Integer allCounts=(Integer)map.get(("allCounts"));
		
		System.out.println("counts= "+allCounts);
		
		//此操作是将分页数据和筛选数据回填返回到页面
		SplitUtil splitUtil = new SplitUtil(this);	
		super.handleSplit1(request, currentPage, lineSize, column, keyWord, splitUtil);
		//此操作是将查询的数据和记录数返回到页面
		splitUtil.setAttribute(request, allCounts, "BikeBackAction/listBySplit.action", null, null, null, null);
		mav.setViewName("/pages/bike/bike_list.jsp");
		mav.addObject("allBikes",allBikes);
		return mav;
		
	}

  

posted @ 2018-03-12 14:46  scwyfy  阅读(112)  评论(0编辑  收藏  举报