cataloglisttag.java
来自「一个免费wap站」· Java 代码 · 共 160 行
JAVA
160 行
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;
import com.eline.wap.common.util.StringUtils;
public class CatalogListTag extends ListTag {
/**
*
*/
private static final long serialVersionUID = 7563556938979707441L;
private String prefix;
private boolean hasNext = false;
private int pageItems; // 页面大小
private int pageNum = 0; // 页号
private int parentId = -1;
private boolean isActiveOnly = false;
private String searchKey = null;
private int type = -1; // 所有类型
/**
* 缺省构造函数
*
*/
public CatalogListTag() {
prefix = "CatalogList_";
}
/**
* 确定是否具有下页
* @return boolean-真时为有
*/
protected boolean needsNextForm() {
return hasNext;
}
/**
* 设置列表标记前缀,用于避免与其它标记混
*/
protected void initParamPrefix() {
super.paramPrefix = this.prefix;
}
/**
* 重载基类方法,在该方法中求出查询条件,查询数据库,并返回规定的查询结果
* @return Collection-符合条件的查询结果
* @throws Exception: 因为其为页面级调用,因此不返回异常
*/
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;
}
/**
* 根据JSP页面所传来的参数形成查询条件值对象
* @return ItemCondition 目录查询条件值对象
*/
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;
}
// 目录搜索
if (searchKey != null && searchKey.length() > 0) {
condition.setSearchKeywords(searchKey);
hasCondition = true;
}
if (type != -1) {
condition.setType(type);
hasCondition = true;
}
return hasCondition ? condition : null;
}
/**
* 标签库参数: 由jsp页面进行赋值,指定父目录
* @param parentId : int 父目录ID号
*/
public void setParentId(int parentId) {
this.parentId = parentId;
}
/**
* 标签库参数: 由JSP页面设置每页记录数,初始化基类对应属性pageSize
* @param pageNum: int-每页记录数
*/
public void setPageItems(String pageItems) {
this.pageItems = StringUtils.getInt(pageItems, 10);
super.pageSize = this.pageItems;
}
/**
* 标签库参数: 由JSP页面设置页号,初始化基类对应属性pageIndex
* @param pageNum: String-页号
*/
public void setPageNum(String pageNum) {
this.pageNum = StringUtils.getInt(pageNum, 0);
super.pageIndex = this.pageNum;
}
/**
* 标签库参数: 由JSP页面设置显示级别
* @param activeOnly: boolean 显示活跃的元素/非活跃元素
*/
public void setActiveOnly(boolean isActiveOnly) {
this.isActiveOnly = isActiveOnly;
}
public void setSearchKey(String searchKey) {
this.searchKey = searchKey;
}
public void setType(int type) {
this.type = type;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?