`
mywebcode
  • 浏览: 1004586 次
文章分类
社区版块
存档分类
最新评论

struts2 + hibernate + spring 使用pager-taglib 分页

 
阅读更多

第一步:

pager-taglib 分页需要从其官方下载相应的插件: http://jsptags.com 解压出来将pager-taglib.jar包拷贝到lib目录下,

第二部:

新建StudentImpl类,用来获取要分页的数据和数据库中数据总的条目数,并继承Spring对hibernate支持来获得session对象

public class IStudentDAOImpl extends HibernateDaoSupport{

public int getNumber() {

String hql = "select count(*) from Student";

Session session = this.getSession();

Query query = session.createQuery(hql);
int total = ((Number)query.uniqueResult()).intValue();

return total;
}

@SuppressWarnings("unchecked")
public List<Student> finStudents(int offset, int pageSize) {
String hql = "from Student";

Session session = this.getSession();
List<Student> list = session.createCriteria(Student.class).setFirstResult(offset).setMaxResults(pageSize).list();

return list;
}

public void saveStudent(Student student) {

this.getHibernateTemplate().save(student);

}

}

第三部: 书写业务层类: 并继承IStudentDAOImpl 实现其方法

public class IStudentServiceImpl implements IStudentService {

public IStudentDAOImpl studentDAO;

public List<Student> getStudents(int offset, int pageSize) {

return studentDAO.finStudents(offset, pageSize);
}

public int getNumber() {

return studentDAO.getNumber();
}

public void setIStudentDAOImpl(IStudentDAOImpl studentDAO){

this.studentDAO = studentDAO;

}

第四步:书写Action

public class StudentAction extends ActionSupport {

private IStudentServiceImpl service;

//商品总的记录数
private int total;
//每页要显示的数据条目
private List<Student> pageStudents;
//从第几条数据开始显示
private int offset;
//每页显示的条目
private int pageSize = 2;

public String list() throws Exception{

total = service.getNumber();
HttpServletRequest request = ServletActionContext.getRequest();


if(request.getParameter("pager.offset") == null)
{
offset = 0;
}

else
{
offset = Integer.parseInt(request.getParameter("pager.offset"));
}

students = service.getStudents(offset, pageSize);
ActionContext.getContext().put("students", students);
return "list";
}

}

第五部:写list.jsp页面

<!--

头部引入

<%@ taglib uri="/struts-tags" prefix="s" %>
<%@ taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

-->

<h2 align="center"><font color="red">学生信息预览表</font></h2>
<table border="1" align="center">
<tr>
<td>编号</td>
<td>姓名</td>
<td>年龄</td>
<td>性别</td>
<td>学校</td>
<td>入学日期</td>
</tr>
<s:iterator value="#students" id="student">
<tr>
<td><s:property value="#student.id"/></td>
<td><s:property value="#student.name"/></td>
<td><s:property value="#student.age"/></td>
<td><s:property value="#student.sex"/></td>
<td><s:property value="#student.school"/></td>
<td><s:property value="#student.date"/></td>
</tr>
</s:iterator>
</table>

<pg:pager items="${total}" url="student_list.action" export="currentPageNumber=pageNumber" maxPageItems="2" >
<pg:first><a href="${pageUrl}"><nobr>[首页]</nobr></a></pg:first>
<pg:prev><a href="${pageUrl}">前一页</a></pg:prev>
<pg:pages>
<c:choose>
<c:when test="${currentPageNumber eq pageNumber}">
<font color="red">${pageNumber }</font>
</c:when>
<c:otherwise>
<a href="${pageUrl}">${pageNumber}</a>
</c:otherwise>
</c:choose>
</pg:pages>
<pg:next><a href="${pageUrl}">下一页</a></pg:next>
<pg:last><a href="${pageUrl}"><nobr>[尾页]</nobr></a></pg:last>
</pg:pager>

Struts.xml配置

<action name="student_list" class="StudentAction" method="list">
<result name="list">/list.jsp</result>
</action>

applicationContext.xml配置

<!--把sessionFactory映射到IStudentDAOImpl类的sessionFactory属性中-->

<bean id="studentDAO" class="org.cxg.dao.impl.IStudentDAOImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

<!--把studentDAO映射到IStudentServiceImpl类的studentDAO属性中-->

<bean id="studentService" class="org.cxg.service.impl.IStudentServiceImpl">
<property name="studentDAO" ref="studentDAO"></property>
</bean>

<bean id="StudentAction" class="org.cxg.action.StudentAction" scope="prototype">
<property name="service" ref="studentService"></property>
</bean>

}

分享到:
评论

相关推荐

    j2ee中struts+hibernate+spring+pager-taglib分页实例

    j2ee中struts+hibernate+spring+pager-taglib分页实例 这套解决方案,是按照MVC的模式来做的,基于STRUTS框架。分为三个部分,表现层用的是JSP,其中用了JSTL和pager taglib做分页;控制层就是用的很传统的Action;...

    使用pager-taglib分页完整例子

    使用pager-taglib分页,含有多种分页样式,jar包都有,只要导入就可以运行,内附有说明,java 语言的

    struts2+pager-taglib 实现分页小例子

    通过网上搜集资料,实现了一个struts2+hibernate+pager-taglib的分页小例子,大家在运行例子前,请一定要看包里面的readme.txt文件。里面有环境的搭建。

    Myeclipse开发struts+hibernate+spring新手入门--环境配置---项目开发示例

    Myeclipse开发struts+hibernate+spring新手入门---环境配置----项目开发示例 Myeclipse开发struts+hibernate+spring小记 开发前准备工作: 1、下载eclipse3.1版本 下载地址: 2、下载Myeclipse插件 下载地址: 3...

    ssh+分页(pager-taglib)

    本资源融合了struts+spring+hibernate的集成,并充分运用jsp开源分页标签(pager-taglib)进行了分页。支持多条件的分页查询。由于上传大小限制,本人被迫将所用到的jar包目录删除,所需的几个必备jar包我已留在本...

    pager-taglib 分页扩展实例

    pager-taglib 是个很好的jsp分页标签,使用它结合jstl可以实现灵活的分页导航功能。在实际的开发中post方式的提交比较常见,本人做了一个比较通用的基于post方式的一个应用。主要实现一下功能: 1.添加输入跳转、每...

    pager-taglib-2.0

    pager-taglib-2.0,pager-taglib-2.0,pager-taglib-2.0,java分页标签。

    pager-taglib源码

    这是pager-taglib的官方源码,但在采用官方的pager-taglib分页传输中文参数会出现乱码,所以我采用maven新建一个pager-taglib项目对pager-taglib的源码进行小小的改动,是他支持中文传输,更重要的是把源代码提供给...

    pager-taglib-2.0及使用方法

    pager-taglib-2.0及使用方法,一个很好用的页面分页工具.

    pager-taglib分页jar包

    用于在jsp中进行分页的 pager-taglib包

    pager-taglib分页组建

    pager-taglib分页组建 pager-taglib分页组建 pager-taglib分页组建 pager-taglib分页组建

    pager-taglib.jar

    利用pager-taglib进行查询分页时需要添加该jar包:pager-taglib.jar

    ssh2+pager-taglib实现自动分页

    Pager-taglib,支持多种风格的分页显示。实际上她是一个Jsp标签库,为在JSP上显示分页信息而设计的一套标签,通过这些标签的不同的组合,会形成多种不一样的分页页面,风格各异,她自带的DEMO就有七种左右的分页风格...

    pager-taglib 分页框架+附带例子

    该资源系本人工作之余的一个小小案例,希望对大家有所帮助

    pager-taglib.jar包下载

    pager-taglib.jar包下载.很方便的分页框架。这是jar包,希望能帮到大家

    pager-taglib中文乱码解决后的JAR包

    用pager-taglib进行分页时,如果出现中文参数,由于pager-taglib默认是用ISO8859-1编码后进行参数传递,故会出现乱码现象。本人下载源码后,将编码的语句注释掉,即不进行编码,解决了中文乱码问题。改写后的代码已...

    pager-taglib分页标签

    jsp 分页标签。 用于列表自动分页功能

    Pager-taglib页面分页示例

    这是关于paper-taglib分页框架的小小项目,导入myeclipse中部署到服务器可直接运行,包含了两种分页风格:普通样式和谷歌样式,可以在servlet中通过注释切换。

    pager-taglib使用指南 .txt

    pager-taglib使用指南 .txt 很详细,里面还有例子。

Global site tag (gtag.js) - Google Analytics