`
yido5566
  • 浏览: 40727 次
  • 性别: Icon_minigender_1
  • 来自: 福州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Struts 2 假分页

阅读更多

主要思想,将要分面的数据全部取出。放入bigList,再根据curentPage对大集合切割成分页要显示的数据smallList。

通过action请求在分面的jsp页面中输出smallList。调用分页控制pageController.jsp。

 

PageController.java

package articles.page;

import java.util.ArrayList;

//负责传入一个大的集合,根据页号返回所需要的数据
//计算总页数 =(总记录数+每页条数-1)/每页条数
//第N页显示第几条记录(记录从0开始算)? (N-1)*每页条数=<序号< N*每页条数

public class PageController {
	@SuppressWarnings("unchecked")
	private ArrayList bigList; // 大的集合,外界传入
	private int curentPageIndex = 1; // 当前页号,外界传入
	private int countPerpage = 5; // 每页条数,外界可以设定
	@SuppressWarnings("unchecked")
	private ArrayList smallList; // 小的集合,返回
	private int pageCount; // 页数
	private int recordCount; // 记录条数
	private int prePageIndex; // 上一页序号
	private int nextPageIndex; // 下一页序号
	private boolean firstPage; // 是否第一页
	private boolean lastPage; // 是否最后一页

	public void setCurentPage(String curentPage) {
		if (curentPage == null) {
			curentPage = "1";
		}
		int currentPageIndex = Integer.parseInt(curentPage);
		this.setCurentPageIndex(currentPageIndex);
	}

	@SuppressWarnings("unchecked")
	public void setCurentPageIndex(int curentPageIndex) {
		// 每当页数改变,都会调用这个函数,筛选代码可以写在这里
		this.curentPageIndex = curentPageIndex;

		// 上一页,下一页确定
		prePageIndex = curentPageIndex - 1;
		nextPageIndex = curentPageIndex + 1;
		// 是否第一页,最后一页
		if (curentPageIndex == 1) {
			firstPage = true;
		} else {
			firstPage = false;
		}
		if (curentPageIndex == pageCount || pageCount == 0) {
			lastPage = true;
		} else {
			lastPage = false;
		}
		// 筛选工作
		smallList = new ArrayList();
		for (int i = (curentPageIndex - 1) * countPerpage; i < curentPageIndex
				* countPerpage
				&& i < recordCount; i++) {
			smallList.add(bigList.get(i));
		}
	}

	@SuppressWarnings("unchecked")
	public void setBigList(ArrayList bigList) {
		this.bigList = bigList;
		// 计算条数
		recordCount = bigList.size();
		// 计算总页数 =(总记录数+每页条数-1)/每页条数
		pageCount = (recordCount + countPerpage - 1) / countPerpage;
	}

	public int getCountPerpage() {
		return countPerpage;
	}

	@SuppressWarnings("unchecked")
	public ArrayList getBigList() {
		return bigList;
	}

	public int getCurentPageIndex() {
		return curentPageIndex;
	}

	public void setCountPerpage(int countPerpage) {
		this.countPerpage = countPerpage;
	}

	@SuppressWarnings("unchecked")
	public ArrayList getSmallList() {
		return smallList;
	}

	@SuppressWarnings("unchecked")
	public void setSmallList(ArrayList smallList) {
		this.smallList = smallList;
	}

	public int getPageCount() {
		return pageCount;
	}

	public void setPageCount(int pageCount) {
		this.pageCount = pageCount;
	}

	public int getRecordCount() {
		return recordCount;
	}

	public void setRecordCount(int recordCount) {
		this.recordCount = recordCount;
	}

	public int getPrePageIndex() {
		return prePageIndex;
	}

	public void setPrePageIndex(int prePageIndex) {
		this.prePageIndex = prePageIndex;
	}

	public int getNextPageIndex() {
		return nextPageIndex;
	}

	public void setNextPageIndex(int nextPageIndex) {
		this.nextPageIndex = nextPageIndex;
	}

	public boolean isFirstPage() {
		return firstPage;
	}

	public void setFirstPage(boolean firstPage) {
		this.firstPage = firstPage;
	}

	public boolean isLastPage() {
		return lastPage;
	}

	public void setLastPage(boolean lastPage) {
		this.lastPage = lastPage;
	}

}

 

*.action

public class ArticleAction extends ActionSupport {
	private Article article;
	private ArticleFacade articleFacade;
	private List listOperate;
	private PageController pc;

	public ArticleAction() {
		articleFacade = new ArticleFacadeImpl();
	}

	public List getListOperate() {
		return listOperate;
	}

	public PageController getPc() {
		return pc;
	}

	public void setPc(PageController pc) {
		this.pc = pc;
	}

	
public String operateList() {
		operatelogFacade = new OperatelogFacadeImpl();
		HttpServletRequest request = ServletActionContext.getRequest();
		HttpSession session = request.getSession();
		User user1 = (User) session.getAttribute("user");
		
		pc = (PageController) request.getAttribute("pc");
		if (pc == null) {
			pc = new PageController();
			List listOperateBig = operatelogFacade.selectOperatelog(user1
					.getUserID());
			pc.setBigList((ArrayList) listOperateBig);
			request.setAttribute("pc", pc);
		}
		
		pc.setCurentPage(request.getParameter("PageIndex"));
		listOperate = pc.getSmallList();

		if ("1".equals(user1.getSystemRole())) {
			return "authorOperate";
		} else if ("2".equals(user1.getSystemRole())) {
			return "auditOperate";
		}
		return "error";
	}
}

 

struts.xml

		<action name="authorOperatelog"
			class="articles.action.ArticleAction" method="operateList">
			<result name="authorOperate">/author/author_operatelog.jsp</result>
			<interceptor-ref name="sessionInterceptor"></interceptor-ref>
		</action>

 author_operatelog.jsp

<%@ page language="java" contentType="text/html;charset=gbk"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
	<head>
		<title>刊物文章管理系统</title>
		<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
	</head>
	<body bgcolor="#ceeef4">
		<div align="center">
			<p>

				<br>
				<font size="5" color="#000099"><b>操作日志</b> </font>
			</p>
			<table cellspacing="0" cellpadding="5" border="1" width="90%">
				<tr bgcolor="#bebef4">
					<td width="20%">
						<b><font size="4">操作类型</font> </b>
					</td>
					<td width="50%">
						<b><font size="4">操作对象</font> </b>
					</td>
					<td width="30%">
						<b><font size="4">操作时间</font> </b>
					</td>
				</tr>
				<s:iterator value="listOperate" status="stat">
					<tr <s:if test="#stat.even"> bgcolor="#D7EBFF" </s:if>>
						<td>
							<s:property value="operateType" />
						</td>
						<td>
							<s:property value="destination" />
						</td>
						<td>
							<s:property value="operateDatetime" />
						</td>
					</tr>
				</s:iterator>
			</table>
			<s:set name="myAction" value="%{'authorOperatelog'}" scope="action" />
			<s:include value="../pageController.jsp" />
		</div>
	</body>
</html>

 

 

pageController.jsp

<%@ page language="java" contentType="text/html;charset=gbk"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<s:if test="pc.pageCount == 0">
</s:if>
<s:else>
	<p align="center">
		<a
			href='<s:url action="%{#attr.myAction}"> 
			<s:param name="PageIndex" value="1"/></s:url>'>[首页]</a>

		<s:if test="pc.firstPage == false">
			<a
				href='<s:url action="%{#attr.myAction}"> 
			<s:param name="PageIndex" value="pc.prePageIndex"/></s:url>'>[上一页]</a>
		</s:if>
		
		<s:if test="pc.lastPage == false">
			<a
				href='<s:url action="%{#attr.myAction}"> 
			<s:param name="PageIndex" value="pc.nextPageIndex"/></s:url>'>[下一页]</a>
		</s:if>

		<a
			href='<s:url action="%{#attr.myAction}"> 
			<s:param name="PageIndex" value="pc.pageCount"/></s:url>'>[尾页]</a>
		第[
		<s:property value="pc.curentPageIndex" />
		]页 共[
		<s:property value="pc.pageCount" />
		]页
	</p>
</s:else>

 

 

  • 大小: 4 KB
  • 大小: 3.8 KB
分享到:
评论

相关推荐

    页面列表实现假分页

    框架使用Struts2+Hibernate实现页面列表的假分页

    j2ee分页(假分页)

    这个分页是用struts框架进行编写,是基于mvc的

    jqurey 分页插件

    超级简单的jqurey 分页插件,内有demo,使用时参考案例即可

    在JDBC,hibernate中实现分页

    讲解了Hibernate中实现分页的方法,详细讲解了JDBC+SQL 2005如何实现假分页,并用struts2标签,在页面上显示。

    MLDN框架笔记大全

    MLDN框架笔记大全 JSP+JDBC_假分页 02 JSP+JDBC_真分页(基于MySQL数据库分页) 03 JSP+DAO和MVC+DAO(基于MySQL数据库分页) 04 Struts入门 05 使用Struts + DAO完成用户登陆 06 Struts标签-...

    J2EE三大框架_笔记_a

    1-JSP+JDBC_假分页笔记 2-JSP+JDBC_真分页(基于Oracle数据库分页)笔记 3-JSP+DAO和MVC+DAO(基于MySQL数据库分页)-v笔记 4-Struts入门笔记 005_Struts+DAO登陆 6-Struts标签-BEAN标签笔记 7-Struts标签 -LOGIC标签...

    J2EE框架_笔记_b

    1-JSP+JDBC_假分页笔记 2-JSP+JDBC_真分页(基于Oracle数据库分页)笔记 3-JSP+DAO和MVC+DAO(基于MySQL数据库分页)-v笔记 4-Struts入门笔记 005_Struts+DAO登陆 6-Struts标签-BEAN标签笔记 7-Struts标签 -LOGIC标签...

    J2EE框架_笔记_c

    1-JSP+JDBC_假分页笔记 2-JSP+JDBC_真分页(基于Oracle数据库分页)笔记 3-JSP+DAO和MVC+DAO(基于MySQL数据库分页)-v笔记 4-Struts入门笔记 005_Struts+DAO登陆 6-Struts标签-BEAN标签笔记 7-Struts标签 -LOGIC标签...

    javaEE框架笔记,识货人下

    1-JSP+JDBC_假分页笔记.pdf 10-Struts高级部分(2)(常用Action、验证框架、动态Form)笔记.pdf 11-留言管理程序_使用Struts + DAO完成笔记.pdf 12-Struts + DAO分页笔记.pdf 13-Hibernate入门(上)笔记.pdf 14-...

    SSH学习基础笔记 .zip

    1-JSP+JDBC_假分页笔记.pdf 2-JSP+JDBC_真分页(基于Oracle数据库分页)笔记.pdf 3-JSP+DAO和MVC+DAO(基于MySQL数据库分页)-v笔记.pdf 4-Struts入门笔记.pdf 005_Struts+DAO登陆.pdf 9-Struts高级部分(1)(解决重复提交...

    (魔乐)J2EE三大框架_笔记

    (魔乐)J2EE三大框架_笔记 1-JSP_JDBC_假分页 2-JSP_JDBC_真分页(基于MySQL数据库分页) 3-JSP_DAO和MVC_DAO(基于MySQL数据库分页) ............... 54-留言管理程序 _Struts _ Spring _ Hibernate完成

    J2EE 三大框架_笔记

    里面有很多常用的搭配的经典的例子,1-JSP+JDBC_假分页笔记 9-Struts高级部分(1)(解决重复提交、上传组件)笔记

    JAVA框架核心技术笔记

    JAVA框架核心技术笔记... 笔记打包下载 1-JSP+JDBC_假分页笔记 2-JSP+JDBC_真分页(基于Oracle数据库分页)笔记 005_Struts+DAO登陆 23-26Hibernate数据关联技术笔记 44登陆案例(Struts+DAO+...

    基于SSH模拟当当网项目(电子商务平台)

    --------当当网SSH重构---------- 1.DAO需要根据原有接口全部重构. ... 如果查询语句使用了join fetch,遇到分页情况下,采用假分页机制执行.(不会生成limit等分页查询命令,首先查所有,然后返回部分需要数据).

    JAVA框架核心技术笔记.rar

    1-JSP+JDBC_假分页笔记.pdf3-JSP+DAO和MVC+DAO(基于MySQL数据库分页)-v笔记.pdf4-Struts入门笔记.pdf。。。。。。

Global site tag (gtag.js) - Google Analytics