- 浏览: 331394 次
- 性别:
- 来自: 沈阳
文章分类
- 全部博客 (160)
- Hiberate (13)
- struts+spring+hibernate (8)
- tomcat服务器 (3)
- sql server2000数据库 (1)
- JSTL标签 (4)
- 数据库 (1)
- jsp (3)
- mysql (4)
- xml (2)
- 字符串操作 (6)
- js (2)
- 过滤器 (0)
- dwr (2)
- Extjs学习笔记 (12)
- java文件 (2)
- struts错误记录 (2)
- struts经验技巧 (2)
- struts+spring+ibatis (3)
- 学习积累--分页的实现过程 (8)
- 递归 (1)
- 工具使用 (1)
- swfupload批量上传 (1)
- flex+webservice (1)
- 精彩文章分享 (0)
- flex+eclipse开发环境 (1)
- DB2数据库 (2)
- ssh+pager taglib分页实现 (2)
- java (0)
- java 异常 (2)
- mylipse6.5 环境内存溢出 (2)
- java 操作word文件 (1)
- 异常整理 (1)
- sql server 2005使用心得 (3)
- jdbc数据库封装 (1)
- javaMail 收发邮件 (1)
- 数据库设计 (1)
- jfreechart图表研究 (1)
- ibatis 学习积累 (1)
- 强制固定表格 (1)
- struts+hibernate (1)
- 分页标签的使用 (1)
- 基于mediawiki的安装心得 (1)
- mediawiki (0)
- Sturs2+Spring2.5+Hibernate3.5+compass 整合 (1)
- RestEasy (3)
- Date 日期公共类整理 (1)
- Excel (8)
- JAVA生成PDF文件 (1)
- Struts1.2+Jquery+Hibernate (1)
- 数据库连接池配置 (0)
- ANT 学习实例 (2)
- 英语学习总结 (1)
- Google动画脚本收藏 (1)
- 20111012 Google动画脚本 (0)
- JQUERY资料整理 (2)
- java图片处理 (1)
- Map集合 (1)
- JAVA 整理AD资料 (2)
- JAVA热启动 (3)
- JAVA操作XML (1)
- TOMCAT6连接池配置问题解决方案 (1)
- JAVA调用DLL学习 (1)
- JAVA移动应用(发送手机短信) (2)
- JAVA发送手机短信 (1)
- iReport报表使用心得 (2)
- 解决Ireport生成PDF报表中文乱码问题 (1)
- iReport使用 (1)
- 全文搜索 compass (1)
- SVN管理 (1)
- Myeclipse8.5 工具编译 (1)
- ibm appscan 扫描问题汇总解决 (1)
- Rose建模设计工具 (1)
- oracle (1)
- MyEclipse8.5注册码(8.6也可以) (0)
- oracle job定时触发执行 (1)
- java Excel导出公用类 (1)
- Highcharts图表 (1)
- excel打包成zip文件,并且提供加密功能 (0)
- excel打包成zip文件 (1)
- 并且提供加密功能 (1)
- vue学习 (1)
- WebStorm使用 (1)
最新评论
-
ahkoun:
楼主棒棒哒,下载后可以直接运行
使用 RestEasy 和 Apache Tomcat 构建 RESTful Web 服务 -
520920:
真的可以了,很棒!
java.lang.Exception: DEBUG -- CLOSE BY CLIENT STACK TRACE -
Yellow013:
不错的例子。
使用 RestEasy 和 Apache Tomcat 构建 RESTful Web 服务 -
huahoucun:
passwd = null; env.put(Context. ...
JAVA 实现AD验证 -
来迟了:
http://www.smschinese.cn/api.sh ...
JAVA发送手机短信
DAO:spring hibernateTemplate
been的xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
<!-- 此处的catalog="test"属性要删掉,不然会报sql语法错误 -->
<class name="com.forlink.been.User" table="user" >
<id name="id" type="integer">
<column name="id" />
<generator class="native" />
</id>
<property name="userName" type="string">
<column name="userName" length="50" not-null="true"/>
</property>
<property name="passWord" type="string">
<column name="passWord" length="50" />
</property>
<property name="email" type="string">
<column name="email" length="50" />
</property>
<property name="address" type="string">
<column name="address" length="50" />
</property>
<property name="cellPhone" type="string">
<column name="cellPhone" length="50" />
</property>
</class>
</hibernate-mapping>
hibernate.cfg.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="show_sql">true</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/ww</property>
<property name="connection.username">root</property>
<property name="connection.password">***</property>
<property name="connection.isolation">2</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- <property name="hibernate.hbm2ddl.auto">create</property> -->
<property name="connection.autocommit">true</property>
<property name="myeclipse.connection.profile">
com.mysql.jdbc.Driver
</property>
<mapping resource="com/been/user.hbm.xml" />
</session-factory>
</hibernate-configuration>
public class DaoImpl extends HibernateDaoSupport implements Dao
{public List findPageByQuery(final String queryString,
final Object[] parameters, final PageInfo pageInfo)
{
return (List) getHibernateTemplate().execute(new HibernateCallback()//这里使用了匿名内部类
{
public Object doInHibernate(Session session)//Spring进行事务维护 省去每次创建session和关闭session
throws HibernateException
{
Query query = session.createQuery(queryString);
if (parameters != null)
{
for (int i = 0; i < parameters.length; i++)
{
query.setParameter(i, parameters[i]);
}
}
ScrollableResults sr = query.scroll();
sr.last();
int totalCount = sr.getRowNumber();
int startIndex = (pageInfo.getPageIndex() - 1)
* pageInfo.getPageSize();
query.setMaxResults(pageInfo.getPageSize());
query.setFirstResult(startIndex);
int totalRec = totalCount + 1;
pageInfo.setTotalRec(totalRec);
int totalPage = (totalRec % pageInfo.getPageSize() == 0) ? (totalRec / pageInfo
.getPageSize())
: (totalRec / pageInfo.getPageSize()) + 1;
int[] pageNumbers = new int[totalPage];
for (int i = 0; i < totalPage; i++)
{
pageNumbers[i] = (i + 1);
}
pageInfo.setPageNumbers(pageNumbers);
pageInfo.setTotalPage(totalPage);
pageInfo.setPageSize(pageInfo.getPageSize());
pageInfo.setPageIndex(pageInfo.getPageIndex());
pageInfo.setPrePage(pageInfo.getPageIndex() - 1);
pageInfo.setNextPage(pageInfo.getPageIndex() + 1);
return query.list();
}
}, true);
}
}
使用参数说明:
final String queryString 查询的语句 from aaa as y where y.id=?
final Object[] parameters 参数数组
final PageInfo pageInfo 这个是分页的类
比如: from AAA as t where t.id=? and t.name=?
object[]a={1,haha}
//Object[] a ={s};
List li = new ArrayList();
li = di.findPageByQuery("from User as user", null, fi);
// li = di.findPageByQuery("from User a", a, fi);
service:spring依赖注入
spring配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="mySessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml" />
</bean>
<bean id="myTransactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="mySessionFactory" />
</property>
</bean>
<bean id="userDao" class="com.forlink.dao.UserDaoImpl">
<property name="sessionFactory">
<ref bean="mySessionFactory" />
</property>
</bean>
<bean id="dao" class="com.forlink.dao.DaoImpl">
<property name="sessionFactory">
<ref bean="mySessionFactory" />
</property>
</bean>
<bean id="userService" class="com.forlink.services.UserServiceImpl"
abstract="false" lazy-init="default" autowire="default"
dependency-check="default">
<property name="userDaoImpl">
<ref bean="userDao" />
</property>
</bean>
<bean id="PageService" class="com.forlink.services.PageService"
abstract="false" lazy-init="default" autowire="default"
dependency-check="default">
<property name="dao">
<ref bean="dao" />
</property>
</bean>
<bean name="/login" class="com.forlink.struts.UserLogin">
<property name="userServiceImpl">
<ref bean="userService" />
</property>
</bean>
<bean name="/page" class="com.forlink.struts.PageAction">
<property name="ps">
<ref bean="PageService" />
</property>
</bean>
<!--<bean id="userService2"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="myTransactionManager" />
</property>
<property name="target">
<ref bean="userService" />
</property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
-->
</beans>
public class PageService
{
public Dao dao;
/*
* public List getUU(String mobile, PageInfo pageInfo) throws Exception {
* List list = null; if (pageInfo == null) pageInfo = new PageInfo(); try {
* list = dao .findPageByQuery( "from uuuu u where c.mobile=? and
* c.sendtype=1 and c.groupType=1 order by c.sendTime desc", new Object[] {
* mobile }, pageInfo); } catch (DataAccessException ex) {
* ex.printStackTrace(); } return list;
*/
public List getUU(PageInfo pageInfo) throws Exception
{
/*ApplicationContext context = new ClassPathXmlApplicationContext(
"applicationContext.xml");
dao = (DaoImpl) context.getBean("Dao");
System.out.print(dao);*/ //自己测试时候可以使用
List list = null;
if (pageInfo == null)
pageInfo = new PageInfo();
try
{
list = dao.findPageByQuery("from User u", null, pageInfo);
} catch (DataAccessException ex)
{
ex.printStackTrace();
}
return list;
}
struts :action
public class PageAction extends Action
{
public PageService ps;
public PageInfo pageInfo=new PageInfo();
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response){
System.out.println("listlistlist");
List list = new ArrayList();
try
{
//pageInfo = (PageInfo) request.getAttribute("pageInfo");
String page=request.getParameter("page");
if(page==null)
{page="1";
}
System.out.println("action...........................");
pageInfo.setPageIndex(Integer.parseInt(page));
// pageInfo.setPageIndex(Integer.parseInt(request.getParameter("Index")));
list = ps.getUU(pageInfo);
if(list.size()!=0)
{
request.setAttribute("list", list);
request.setAttribute("pageInfo", pageInfo);
}
}catch
(Exception ex)
{
ex.printStackTrace();
}
return mapping.findForward("page");
}
public PageInfo getPageInfo()
{
return pageInfo;
}
public void setPageInfo(PageInfo pageInfo)
{
this.pageInfo = pageInfo;
}
public PageService getPs()
{
return ps;
}
public void setPs(PageService ps)
{
this.ps = ps;
}
}
你可以自己写个类 把PageInfo封装进去 我做测试 懒得依赖注入
struts配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources />
<form-beans>
<form-bean name="loginForm" type="com.forlink.struts.UserForm" />
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings>
<action path="/login" input="/login.jsp" attribute="loginForm"
name="loginForm" scope="request" validate="true">
<set-property property="cancellable" value="true" />
<forward name="main" path="/main.jsp" />
</action>
<action path="/findLog" type="com.forlink.struts.LogAction"
scope="request" parameter="findLog">
<forward name="success" path="/index.jsp"></forward>
</action>
<action path="/page" type="com.forlink.struts.PageAction"
scope="request" >
<forward name="page" path="/page.jsp"></forward>
</action>
</action-mappings>
<controller
processorClass="org.springframework.web.struts.DelegatingRequestProcessor" />
<message-resources
parameter="com.forlink.struts.ApplicationResources" />
<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml" />
</plug-in>
</struts-config>
xml 配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
view:用了el
<%@ page contentType="text/html; charset=GBK"%>
<%@ page import="java.util.*" %>
<%@ page import="com.been.User" %>
<jsp:directive.page import="com.dao.PageInfo;"/>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<body>
<%
String nowPage ;
int total;
nowPage=request.getParameter("page");
if(nowPage==null)
{nowPage="1";
}
int curPage=Integer.parseInt(nowPage);
if((PageInfo)request.getAttribute("pageInfo") == null){
total = 1;
} else {
total = ((PageInfo)request.getAttribute("pageInfo")).getTotalPage();
}
%>
<c:forEach var="user" items="${requestScope.list}">
<tr>
<td></td>
<td>${user.userName }</td>
</tr>
</c:forEach>
<a href="${pageContext.request.contextPath }/page.do?page=1">首页</a> |
<a href="${pageContext.request.contextPath }/page.do?page=<%=curPage-1<0?1:curPage-1%>">上一页</a> |
<a href="${pageContext.request.contextPath }/page.do?page=<%=(curPage)>total?total:curPage+1%>">下一页</a> |
<a href="${pageContext.request.contextPath }/page.do?page=<%=total %>">末页</a>
当前第<%=curPage %>页 转到第 <select id="page" onchange="window.location.href='${pageContext.request.contextPath }/page.do?page='+document.getElementById('page').value;"> <%
for(int toPage = 1; toPage<=total; toPage++) {
%>
<option value = <%=toPage%>
<%if(toPage==curPage){ %>
selected
<%} %>
>
<%=toPage %>
</option>
<%
}
%>
</select> 页
共<%=total%>页 ssss${pageInfo.pageIndex}
</body>
</html>
还有pageInfo类
public class PageInfo
{
private int totalPage = 1;
/**
* 前一页
*/
private int prePage = 1;
/**
* 下一页
*/
private int nextPage = 1;
/**
* 总记录数
*/
private int totalRec = 0;
/**
* 默认每页记录数
*/
private final int defaultPageSize = 10;
/**
* 每页记录数
*/
private int pageSize = defaultPageSize;
/**
* 当前页码
*/
private int pageIndex = 1;
/**
* 全部页码,从1开始
*/
private int[] pageNumbers;
public int getPageIndex() {
return pageIndex;
}
public void setPageIndex(int pageIndex) {
this.pageIndex = pageIndex > 0 ? pageIndex : 1;
}
public int getNextPage() {
return nextPage;
}
public void setNextPage(int nextPage) {
this.nextPage = nextPage > this.totalPage ? this.totalPage : nextPage;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize > 0 ? pageSize : 10;
}
public int getPrePage() {
return prePage;
}
public void setPrePage(int prePage) {
this.prePage = prePage < 1 ? 1 : prePage;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage > 0 ? totalPage : 1;
}
public int getTotalRec() {
return totalRec;
}
public void setTotalRec(int totalRec) {
this.totalRec = totalRec > -1 ? totalRec : 0;
}
public int[] getPageNumbers() {
return pageNumbers;
}
public void setPageNumbers(int[] pageNumbers) {
this.pageNumbers = pageNumbers;
}
}
虽然分页是很基础的 但自己写一遍还是需要细心 不然会很多BUG
起码需要你把环境搭建 自己没有利用pageinfo的total这些 属性 就是想页面自己写写
总结over
发表评论
-
ssh的例子实现了分页的查询
2010-08-11 17:27 1399ssh的例子实现了分页的查询 -
Struts+hibernate实现分页程序
2010-01-12 14:46 1303package com.shisoft.Pager; ... -
strut错误记录
2009-12-28 10:29 947如果你也遇到以下问题: java.lang.Illega ... -
分页标签
2009-11-20 09:54 13011: 我们需要下载page标签 ... -
分页标签:pager-taglib使用指南
2009-11-19 21:33 1129一简介, Pager-taglib,支持多种风格的分页显示。 ... -
SSH pager-taglib分页的实现
2009-11-19 21:18 1238前两天只是把这个分页的代码传了上去,每页写太多的东西 况且本 ... -
struts+spring+hibernate配置心得
2009-11-13 13:32 1963使用ssh架构搭建的用户登陆系统,实现了树形结构和基于ajax ...
相关推荐
SSH分页 分页 通用分页 struts2分页
在这个“很好的SSH分页小例子”中,我们将深入探讨SSH框架如何实现数据的分页显示,这对于处理大数据量的展示至关重要。 首先,让我们了解SSH框架的各自角色: 1. **Struts2**:这是一个MVC(Model-View-...
SSH分页插件的核心功能是将数据库查询结果按照一定的页码和每页记录数进行切割,使得用户可以逐页浏览,提高用户体验并减轻服务器负担。这个插件通常会集成到SSH框架中,通过简单的配置和调用,就能实现复杂的数据...
好强大的ssh分页,封装的很好,适合初学者研究下,可以更快帮助初学者掌握分页机制,学起来不是很容易,但是当你学会了就豁然开朗,其他的分页直接可以藐视了,哈。。。我就是这样学过来的 有相关教程:...
SSH分页则是指在使用这三个框架开发应用程序时,实现数据展示分页的一种技术手段。 **Struts** 是一个基于MVC设计模式的Web应用框架,主要用于控制视图与模型之间的交互。它提供了一种组织应用逻辑的方式,使得...
在这个"SSH分页_完整例子"中,我们将深入探讨如何在SSH框架下实现数据的分页显示。 分页是Web应用程序中常见的功能,它能帮助用户更有效地浏览和处理大量数据。SSH框架通过整合Spring的事务管理和Hibernate的ORM...
SSH分页技术是Java Web开发中一种常见的数据处理方法,主要应用于大数据量的展示场景,如用户在浏览商品列表或论坛帖子时,通过分页来避免一次性加载所有数据导致的性能问题和用户体验下降。SSH指的是Spring、Struts...
在SSH框架中实现分页功能是一项常见的任务,尤其是在处理大量数据时,分页能有效地提高用户体验,避免一次性加载过多数据导致页面响应慢。以下将详细介绍如何在SSH框架下创建分页程序,并探讨其优缺点。 首先,理解...
在本实例中,我们将深入探讨SSH框架下的分页功能实现。 首先,让我们从Struts开始,它是SSH中的用户界面层,负责处理HTTP请求并返回相应的视图。在Struts中,我们可以创建一个Action类来处理分页请求。这个Action类...
总的来说,"ssh 分页 控件 (分页插件)"是一个便捷的工具,能够帮助SSH框架的开发者在JSP页面中轻松实现数据分页功能,提升项目开发效率和用户体验。通过对分页插件的配置和使用,我们可以更专注于业务逻辑,而不用...
在这个"SSH+Mysql无刷新分页实例"中,我们将探讨如何利用SSH框架与MySQL数据库实现网页的无刷新分页功能,从而提高用户体验。 首先,SSH框架中的Spring负责控制层,它提供依赖注入(Dependency Injection,DI)和...
在这个场景中,"SSH分页组件"指的是在SSH框架下实现数据分页功能的组件。 分页是Web应用中常见的需求,特别是在处理大数据量时,为了提高用户体验和系统性能,需要将结果集分割成多个小部分(页)进行显示。SSH分页...
SSH分页技术是Java开发中一个非常实用的功能,尤其在处理大数据量的Web应用时,它能够有效地提高用户体验,避免一次性加载过多数据导致的性能问题。SSH是指Spring、Struts和Hibernate这三大开源框架的组合,它们在...
"SSH分页查询方法"是指在使用Struts2、Hibernate和Spring三大Java开发框架集成开发时实现的分页功能。 首先,Struts2是一个MVC(Model-View-Controller)框架,它负责处理用户请求并将其转发到相应的控制器,进而...
这个一个关于String+Spring+Hibernate框架,可以分页显示的实例代码.
总结起来,这个压缩包提供的SSH分页实例数据库MySQL连接,旨在帮助初学者掌握SSH框架在实际项目中的应用,尤其是如何利用SSH实现数据的CRUD操作和分页功能,对于提升Java Web开发技能具有很大价值。通过实践这个实例...
按照 文档中的的内容轻松实现SSH分页,文档中包含 了 分页bean。直接复制即可使用。有详细的类和方法说明。
在这个特定的上下文中,"ssh 分页组件"指的是在SSH框架中实现数据分页的功能。数据分页在大型应用中尤为重要,因为它能有效地管理大量数据,避免一次性加载过多数据导致性能下降。 分页组件通常由两部分组成:前端...
在这个"SSH+ExtJs分页小例子"中,我们将探讨如何将这两种技术结合实现数据分页显示。 首先,我们来看NewsDAO.java文件。这个文件包含了两个关键方法:`findPageAll`和`totalRecord`。`findPageAll`方法实现了分页...
在这个名为"ssh.zip_SSH 数据分页_ssh分页实现"的压缩包中,我们可以看到一个关键的实践案例——如何在SSH框架下实现数据分页功能。数据分页在Web应用中极为重要,因为它能够帮助用户更有效地浏览大量信息,提高用户...