catalogbooklisttag.java

来自「一个免费wap站」· Java 代码 · 共 105 行

JAVA
105
字号
package com.eline.wap.catalog.taglib;

import java.util.Collection;

import javax.servlet.http.HttpServletRequest;

import com.eline.wap.catalog.client.CatalogHelper;
import com.eline.wap.catalog.model.ItemCondition;
import com.eline.wap.common.model.Page;
import com.eline.wap.common.taglib.ListTag;

public class CatalogBookListTag extends ListTag {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1833139474190916281L;

	private String prefix;
	private boolean hasNext = false;
	
	private int pageItems;			// 页面大小
	private int pageNum		= 0;	// 页号
	private int parentId	= -1;
	private boolean isActiveOnly	= false;

	public CatalogBookListTag() {
		prefix = "CatalogBookList_";
	}

	protected boolean needsNextForm() {
		return hasNext;
	}

	protected void initParamPrefix() {
		super.paramPrefix = this.prefix;
	}

	protected Collection findCollection() throws Exception {
		Collection coll = null;
		Page page = null;
		
		HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
		
		// 保证每次调用该列表页面时总显示第一页
		if(request.getParameter(prefix + "pageIndex") == null || request.getParameter(prefix + "pageIndex").equals("")
				|| request.getParameter(prefix + "pageIndex").equalsIgnoreCase("null"))
			pageIndex = 0;

		// 根据页面中查询条件形成查询值对象
		ItemCondition condition = fillQueryCondition();

		// 查询结果
		CatalogHelper ch = new CatalogHelper();
		int start = pageIndex * pageSize;
		page = ch.searchItems(condition, start, pageSize);
		coll = page.getItems();

		// 为基类相应属性赋值,写共几条记录,共几页第几页用
		totalRecords = page.getTotalRecords();	// 共有多少条记录
		totalPages = (totalRecords + pageSize - 1) / pageSize;	// 共有多少页
		
		// 是否有下页
		hasNext = ((pageIndex + 1) < totalRecords) ? true : false;

		return coll;
	}

	private ItemCondition fillQueryCondition() {
		ItemCondition condition = new ItemCondition();
		boolean hasCondition = false;
		
		if (parentId >= 0) {
			condition.setParentId(parentId);
			hasCondition = true;
		}
		if (isActiveOnly == false) {
			condition.setActiveOnly(false);
			hasCondition = true;
		}
		
		return hasCondition ? condition : null;
	}

	public void setActiveOnly(boolean isActiveOnly) {
		this.isActiveOnly = isActiveOnly;
	}

	public void setPageItems(int pageItems) {
		this.pageItems = pageItems;
		super.pageSize = this.pageItems;
	}

	public void setPageNum(int pageNum) {
		this.pageNum = pageNum;
		super.pageIndex = this.pageNum;
	}

	public void setParentId(int parentId) {
		this.parentId = parentId;
	}
	
	
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?