日期:2014-05-16  浏览次数:20556 次

sns 评论ajax分页 和 二级评论ajax 分页 ssh2 实现 源码下载

?sns 评论 ajax 分页 和二级 评论 ajax 分页 ssh2 实现 源码下组 jar 在jar_1 jar_2 下载 数据 mysql测试可以

?

?

?

经过周六日的研究 终于弄明白 ajax 分页的实现了。

?

基本上就是利用了 jquery 的一个函数?

?

?

$("#id").load(url,function() {});

?

?

首先 进入 评论页面 -> load 评论 ,评论 再 -> load 子评论。

?

按照 组件开发的方式 ?编写分页标签。

?

?

package com.freewebsys.core.sns.taglib;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
import com.freewebsys.core.sns.page.PageConf;

public class PageTaglib extends TagSupport {

	private String id;// 标识不同分页,当一个页面有多个分页时,
	private String action;
	private int start;
	private int limit;
	private int total;
	private String otherValue;
	private String theme;
	// 默认 分页跳转 js.兼容写法。兼容刷新分页 和 ajax分页。都调js函数。ajax要重写 goPage函数
	private static final String DEFAULT_PAGE_JS = "<script type='text/javascript'>function goPage(url){location.href = url;}</script>";
	// 分页 div 开始
	private final String DEFAULT_THEME_BEGIN = "<div class='pagination' id='Pagination'>";
	private final String MINI_THEME_BEGIN = "<div class='paginationMini' id='PaginationMini'>";
	// 分页 div 结束
	private final String DEFAULT_THEME_END = "</div>";
	// 分页字符串
	private final String PAGE_A = "<a href=\"javaScript:void(0);\" onclick=\"goPage('";

	// 默认样式模板

	@Override
	public int doStartTag() throws JspException {
		try {
			if (total <= limit) {// 如果还不够一页 就不显示
				return super.doEndTag();
			}
			// 初始化参数.每次独立计算.否则分页有问题.
			PageConf pageConf = new PageConf(start, limit, total);
			String ctx = pageContext.getServletContext().getContextPath() + "/";
			ctx += action;
			if (action.indexOf("?") >= 0) {// 如果存在?号用&
				ctx += "&" + findOtherValue();
			} else {// 否则用?
				ctx += "?" + findOtherValue();
			}
			PageConf pageConfFirst = new PageConf(start, limit, total);
			String firstUrl = ctx;
			PageConf pageConfPrev = new PageConf(start, limit, total);
			String prevUrl = ctx;
			PageConf pageConfNext = new PageConf(start, limit, total);
			String nextUrl = ctx;
			PageConf pageConfLast = new PageConf(start, limit, total);
			String lastUrl = ctx;
			// pageContext.setAttribute("gridPanelWidth", width);
			// pageContext.setAttribute("gridPanelHeight", height);
			if (pageConf.hastPrevious()) {
				pageConfFirst.getFirst();
				firstUrl += "&start=" + pageConfFirst.getStart();
				pageConfPrev.getPrevious();
				prevUrl += "&start=" + pageConfPrev.getStart();
			}
			if (pageConf.hasNext()) {
				pageConfNext.getNext();
				nextUrl += "&start=" + pageConfNext.getStart();
				pageConfLast.getLast();
				lastUrl += "&start=" + pageConfLast.getStart();
			}
			// 直接将数据写到页面
			String str = genCenterButtons(start, limit, total, ctx);
			if (theme == null || theme.equals("")) {
				writeToPage(DEFAULT_PAGE_JS);// 默认跳转函数
				writeToPage(DEFAULT_THEME_BEGIN);
				writeToPage(str);
			} else if (theme.equals("ajax")) {// 普通ajax分页
				writeToPage(DEFAULT_THEME_BEGIN);
				writeToPage(str);
			} else if (theme.equals("miniAjax")) {// mini型ajax分页
				writeToPage(MINI_THEME_BEGIN);
				if (id != null) {//标识不用分页
					str = str.replace("goPage", "goMiniPage_" + id);
				} else {
					str = str.replace("goPage", "goMiniPage");
				}
				writeToPage(str);
			}
			// 如果是ajax就要在页面重写goPage函数
			writeToPage(DEFAULT_THEME_END);

		} catch (Exception e) {
			e.printStackTrace();
		}
		return super.doEndTag();
	}

	/**
	 * 生成多个跳转按钮方法,如1,2,3,4,5这样的按钮跳转最大7页跳转
	 */
	private String genCenterButtons(int start, int limit, int total, String ctx) {

		// 初始化参数.每次独立计算.否则分页有问题.
		PageConf pageConf = new PageConf(start, limit, total);
		PageConf pageConfTemp1 = new PageConf(start, limit, total);
		PageConf pageConfTemp2 = new PageConf(start, limit, total);

		// 结束页
		PageConf pageConfTempLast = new PageConf(start, limit, total);
		//
		pageConfT