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 字段。
分享到:
相关推荐
这是FreeMarker通用的分页
这个例子是Freemarker整合Struts2分页,包含了struts2和Freemarker的jar包,可以直接下载导入到Eclipse中运行.
freemarker分页,freemarker分页,freemarker分页
好用的 freemarker 分页宏模板dom结构比较主流的一个分页一排显示10个分页按钮(想定制的话把页码提取出来做为参数即可)pagenav.previousPage 存着上一页pagenav.totalPage 总页数pagenav.pageNo 当前页面页码page...
freemarker的分页.数据库是mysql.
freemarker结合struts2分页,在后台接收当前页和每页显示条数即可,其他可按照需求自行更改
一个用FTL定义的非常通用数据分页指令,有源码,有使用示例。使用效果图可以参看本人博客中的相关文章:http://blog.csdn.net/qjyong/archive/2009/10/18/4693142.aspx
NULL 博文链接:https://asialee.iteye.com/blog/2062313
学习freemarker后 发现网上用宏实现分页的例子几乎没有,所以自己写了个。
主要就是用servlet做的,freemarker和httpclient的静态化都封装好了工具类了,简单,有文档,可以看懂
NULL 博文链接:https://cjb.iteye.com/blog/403878
Spring,Spring Data Jpa,freemarker,bootstrap实现的分页源代码
不过由于小弟资历浅薄,也没心思看,主要是strut2的标签本来我就觉得不大习惯,另外上个月接触了freemarker后,实在是用的爽死了,为什么不用freemarker的macro指令写个通用的分页呢?马上想到模仿TX的...
使用FreeMarker配合Servlet写了一个分页程序,使用环境是Java7和Tomcat7,Eclipse 4.2,程序比较简单,并且加了注释,应该算是清楚易懂吧,适合初学者(我本身也是初学者),有问题私信可以再和大家讨论。
NULL 博文链接:https://fenyouze.iteye.com/blog/440826
留言板的静态页面是从网上找的,,分页自己写的,不一定很严谨,我只是凑合用的,注释的话好像只有分页有点,里面有jar包,导入myeclipse就可以了。还有mysql的sql文件,同样导入mysql即可。
利用freemarker 模板生成pdf ,利用easypoi 生成excel(带图片,水印,分页)
多数据源部分代码,直接运行beta\src\main\java\org\springframework\jdbc\datasource\lookup下Test的main方法,可根据业务开放接口
Spring4 SpringMVC4 Hibernate4 Freemarker Bootstrap3 整合的小DEMO,主要就是一个登录页面,加一个主页面,然后实现增删改查,还有分页的功能 说明:在项目的doc下有数据库文件,新建数据库名为 db_shf,编码设为...
Word从2003开始支持XML格式,用XML来做就很简单了。 大致的思路是先用office2003或者2007编辑好word的样式,然后另存为xml,将xml...关于FreeMarker模板编辑说明在我的资源中有中文文档,需要的朋友可以去下载。