public List<Long> getPageList() {
		if (pageList == null) {
			long cp = pageNo, mp = getTotalPages(), avgSize = 4;
			pageList = new LinkedList<Long>();

			// 只有1页
			if (cp == 1 && cp == mp) {
				pageList.add(cp);
			}
			//
			else {
				long s = cp - avgSize, // 判断之前是否够放
				e = cp + avgSize + (s < 0 ? Math.abs(s) : 0); // 之前不够放的话, 用后面叠加
				if (e > mp) {
					s = 1;
					e = mp;
				} else {
					long t = (e - cp) - (s < 0 ? Math.abs(s) : 0);
					s = s < 0 ? 0 : s;
					s = t == avgSize ? s : s - t;
				}
				for (; s <= e; s++) {
					pageList.add(s);
				}
			}
		}
		return pageList;
	}