`

关于freemarker的分页

阅读更多
 tableDemo.ftl  代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<%@ taglib prefix="s" uri="/struts-tags"%>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>分页DEMO</title>
	</head>

	<body>
		<br />
		<br />
		<br />
		<br />
		<br />
		<br />
		<br />
		<center>
			<table width="600" border="1" cellpadding="0" cellspacing="0"position:absolute; left:0px; top:0px; bottom:0px; width:199px; border-right:solid 1px #BFDBFF; height:auto;>
				<tr>
					
					<td width="530" align="center">
						<font style="font-size: 18px">ID</font>
					</td>
					<td width="530" align="center">
						<font style="font-size: 18px">LoginName</font>
					</td>
				</tr>


				<#list tablelist as tlist>

				<tr>

					<td>
						<#if tlist.loginid?exists>${tlist.loginid}</#if>
					</td>
					<td>
						<#if tlist.loginName?exists>${tlist.loginName}</#if>
					</td>
				</tr>
				</#list>

				<tr>
					<td colspan="2" align="center">
						当前第 
							<#if pageset.curPage==0>${pageset.curPage+1}
								<#else>${pageset.curPage} 
							</#if>
								页/共 
							<#if pageset.pageSize?exists>${pageset.pageSize}</#if>
								页 共有 
							<#if pageset.rowCount?exists> ${pageset.rowCount}</#if>
								条记录 每页用
						    <input type="text" size="4" name="rowsize" value="<#if pageset.rowSize?exists>${pageset.rowSize}</#if>" />
								行显示
							<br />
							
							<a href="Tabled.action?current=1">首页</a>  
							<#if pageset.curPage-1==0>
									<a href="Tabled.action?current=1">上一页</a> 
									<#else>
										<a href="Tabled.action?current=${pageset.curPage-1}">上一页</a>
							</#if> 
							<#if pageset.curPage == pageset.pageSize>
									<a href="Tabled.action?current=${pageset.pageSize}">下一页</a>
									<#else>
										<a href="Tabled.action?current=${pageset.curPage+1}">下一页</a>
							</#if>

							<a href="Tabled.action?current=${pageset.pageSize}">尾页</a>
					</td>
				</tr>

			</table>
		</center>
	</body>
</html>

 

 

PageSet.java  代码:

 

package tdemo;

public class PageSet {
	public int curPage=1; // 当前页
	public int pageSize; // 一共有多少页
	public int rowCount; // 一共有多少行
	public int rowSize = 5; // 每页多少行

	// 根据总行数计算总页数
	public void countMaxPage() {
		if (this.rowCount % this.rowSize == 0) {
			this.pageSize = this.rowCount / this.rowSize;
		} else {
			this.pageSize = this.rowCount / this.rowSize + 1;
		}
	}

	public int getCurPage() {
		return curPage;
	}

	public void setCurPage(int curPage) {
		this.curPage = curPage;
	}

	public int getPageSize() {
		return pageSize;
	}

	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}

	public int getRowCount() {
		return rowCount;
	}

	public void setRowCount(int rowCount) {
		this.rowCount = rowCount;
	}

	public int getRowSize() {
		return rowSize;
	}

	public void setRowSize(int rowSize) {
		this.rowSize = rowSize;
	}
}

 

 

 

Tabled.java  代码:

 

package tdemo;

import com.factory.HibernateSessionFactory;
import com.opensymphony.xwork2.ActionSupport;
import com.pojo.Login;
import com.pojo.LoginDAO;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.hibernate.Session;

public class Tabled extends ActionSupport implements ServletRequestAware {
	HttpServletRequest request;
	// tablelist为显示的数据List
	private List<Login> tablelist;
	// 总数size
	private List listsize;
	// 设置 PageSet 对象
	PageSet pageset = new PageSet();
	// session
	Session session;
	LoginDAO logindao;

	public String execute() {
		logindao = new LoginDAO();
		// 获取session--开启
		this.session = HibernateSessionFactory.getSession();
		// 取得页面中的参数--当前页
		int curpage = (this.request.getParameter("current") == null) ? 1
				: Integer.parseInt((String) request.getParameter("current"));

		pageset.setCurPage(curpage);

		// 变量---rowsize()---每行多少记录
		int rowsize = (this.request.getParameter("rowSize") == null) ? pageset
				.getRowSize() : Integer.parseInt((String) request
				.getParameter("rowSize"));

		// 查找所有
		listsize = logindao.findAll();
		// 设定共有多少行
		pageset.setRowCount(listsize.size());
		// 计算总页数
		pageset.countMaxPage();
		// 显示数据的list
		tablelist = logindao.pagedemo((curpage * rowsize) - 5, rowsize);
		return "table_success";
	}

	public List getTablelist() {
		return tablelist;
	}

	public PageSet getPageset() {
		return pageset;
	}

	public void setPageset(PageSet pageset) {
		this.pageset = pageset;
	}

	public void setTablelist(List<Login> tablelist) {
		this.tablelist = tablelist;
	}

	// 设置 request
	public void setServletRequest(HttpServletRequest request) {
		this.request = request;
	}

}

 

 

struts.xml 中的代码:

 

<!DOCTYPE struts PUBLIC "-Apache Software Foundation//DTD Struts Configuragion 2.0//EN"
	"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
	<include file="struts-default.xml"></include>
	<!-- 第一个 HelloWorld -->
	<package name="tutorial" extends="struts-default">
		<action name="HelloWorld" class="tutorial.HelloWorld">
			<result>/HelloWorld.jsp</result>
		</action>
	</package>
	<!-- 第二个 tableDemo -->
	<package name="tdemo" extends="struts-default" >
		<action name="Tabled" class="tdemo.Tabled">
		<param name="current"></param>
			<result name="table_success" type="freemarker">
				/table/tableDemo.ftl
			</result>
		</action>
			
	</package>
	<!-- 第三个   柱状图 -->
	<package name="devutil" extends="struts-default">
		<action name="devutilDemo" class="devutil.devutilDemo">
			<result type="freemarker" name="devutil_success">
				/devutil/devutil.ftl
			</result>
		</action>
	</package>
</struts>

 

 

 

数据库是mysql的:其中只有三个字段:loginid,login_name,login_pwd;

 

创建语句如下:

 

use test;

 

create table login

(

loginid int(11) not null  auto_increment,

login_name varchar(20) not null,

login_pwd varchar(10) not null,

primary key(loginid)

)DEFAULT CHARSET=UTF8;

 

 

创建完成.

 

只显示:lognid 和 login_name  字段。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics