- 浏览: 58326 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
seven_cuit:
正在学习spring mail,楼主这篇文件对我很有帮助了,谢 ...
Spring Mail -
herowzz:
annotation validation 越看越丑陋...
struts2 annotation validation simple -
JimyChen:
逼到极限就会出人命了!
lazy -
脑袋雷劈的:
<div class="quote_title ...
lazy -
Friedrich:
<div class="quote_title ...
lazy
创建数据库:
DROP TABLE IF EXISTS `oa`.`t_system_log`; CREATE TABLE `oa`.`t_system_log` ( `LOG_ID` varchar(20) NOT NULL default '', `LOG_TYPE` char(2) NOT NULL default '', `EVENT` varchar(100) NOT NULL default '', `REG_DATETIME` datetime NOT NULL default '0000-00-00 00:00:00', `REG_USR_ID` varchar(20) NOT NULL default '', `reg_user_id` varchar(255) default NULL, PRIMARY KEY (`LOG_ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Log.java
package com.qtec.entity; import java.util.Date; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; /** * * @author Bill.Zhang * */ @Entity @Table(name="t_system_log") public class Log { @Id @GeneratedValue(strategy=GenerationType.AUTO) private String log_id; private String log_type; private String event; private Date reg_datetime; private String reg_user_id; public String getLog_id() { return log_id; } public void setLog_id(String logId) { log_id = logId; } public String getLog_type() { return log_type; } public void setLog_type(String logType) { log_type = logType; } public String getEvent() { return event; } public void setEvent(String event) { this.event = event; } public Date getReg_datetime() { return reg_datetime; } public void setReg_datetime(Date regDatetime) { reg_datetime = regDatetime; } public String getReg_user_id() { return reg_user_id; } public void setReg_user_id(String regUserId) { reg_user_id = regUserId; } }
MemberDao.java
package com.qtec.dao; import java.util.List; /** * * @author Bill.Zhang * */ public interface MemberDao { /** * * @param hsql * @param offset * @param length * @return */ @SuppressWarnings("unchecked") public List queryForPage(final String hsql,final int offset, final int length); /** * * @return */ public int getAllRowCount(String hsql); public List listAll(); }
MemberDaoImpl.java
package com.qtec.dao; import java.sql.SQLException; import java.util.List; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; import org.springframework.orm.hibernate3.HibernateCallback; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.mysql.jdbc.log.Log; /** * * @author Bill.Zhang * */ public class MemberDaoImpl extends HibernateDaoSupport implements MemberDao { @Override public int getAllRowCount(String hsql) { return getHibernateTemplate().find(hsql).size(); } @SuppressWarnings("unchecked") public List queryForPage(final String hsql, final int offset, final int length) { List list = getHibernateTemplate().executeFind(new HibernateCallback(){ @Override public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query = session.createQuery(hsql); query.setFirstResult(offset); query.setMaxResults(length); List list = query.list(); return list; } }); return list; } @SuppressWarnings("unchecked") @Override public List listAll() { return getHibernateTemplate().find("from Log"); } }
PageBean.java
package com.qtec.util; import java.util.List; /** * * @author Bill.Zhang * */ public class PageBean { @SuppressWarnings("unchecked") private List list; private int allRow; private int totalPage; private int currentPage; private int pageSize; private boolean isFirstPage; private boolean isLastPage; private boolean hasPreviewPage; private boolean hasNextPage; @SuppressWarnings("unchecked") public List getList() { return list; } @SuppressWarnings("unchecked") public void setList(List list) { this.list = list; } public int getAllRow() { return allRow; } public void setAllRow(int allRow) { this.allRow = allRow; } public int getTotalPage() { return totalPage; } public void setTotalPage(int totalPage) { this.totalPage = totalPage; } public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } /** * initialize page information */ public void init(){ this.isFirstPage = isFirstPage(); this.isLastPage = isLastPage(); this.hasPreviewPage = isHasPreviewPage(); this.hasNextPage = isHasNextPage(); } public boolean isFirstPage() { return currentPage == 1; } public boolean isLastPage() { return currentPage == totalPage; } public boolean isHasPreviewPage() { return currentPage !=1; } public boolean isHasNextPage() { return currentPage != totalPage; } public static int countTotalPage(final int pageSize,final int allRows){ return allRows%pageSize == 0 ? allRows/pageSize : allRows/pageSize + 1; } public static int countOffset(final int pageSize, final int currentPage){ return pageSize*(currentPage-1); } public static int countCurrentPage(int page){ return page==0?1:page; } }
MemberService.java
package com.qtec.service; import java.util.List; import com.qtec.util.PageBean; /** * * @author Bill.Zhang * */ public interface MemberService { public PageBean queryForPage(int pageSize,int currentPage); public List listAll(); }
MemberServiceImpl.java
package com.qtec.service; import java.util.List; import com.qtec.dao.MemberDao; import com.qtec.util.PageBean; /** * * @author Bill.Zhang * */ public class MemberServiceImpl implements MemberService { private MemberDao memberDao; public void setMemberDao(MemberDao memberDao) { this.memberDao = memberDao; } @SuppressWarnings("unchecked") @Override public PageBean queryForPage(int pageSize,int currentPage){ final String hsql = "from Log"; int allRow = memberDao.getAllRowCount(hsql); int totalPage = PageBean.countTotalPage(pageSize, allRow); final int offset = PageBean.countOffset(pageSize, currentPage); int length = pageSize; final int page = PageBean.countCurrentPage(currentPage); List list = memberDao.queryForPage(hsql, offset, length); PageBean pageBean = new PageBean(); pageBean.setAllRow(allRow); pageBean.setCurrentPage(page); pageBean.setPageSize(pageSize); pageBean.setTotalPage(totalPage); pageBean.setList(list); pageBean.init(); return pageBean; } public List listAll(){ return memberDao.listAll(); } }
MemberAction.java
package com.qtec.action; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import com.opensymphony.xwork2.ActionSupport; import com.qtec.service.MemberService; import com.qtec.util.PageBean; /** * * @author Bill.Zhang * */ @ParentPackage("struts-default") @Namespace("/") public class MemberAction extends ActionSupport{ /** * */ private static final long serialVersionUID = 1L; private MemberService memberService; public void setMemberService(MemberService memberService) { this.memberService = memberService; } @Action(value="member", results={ @Result(name="success",location="/index.jsp") } ) @Override public String execute() throws Exception { this.pageBean = memberService.queryForPage(10, page); return SUCCESS; } private int page; private PageBean pageBean; public int getPage() { return page; } public void setPage(int page) { this.page = page; } public PageBean getPageBean() { return pageBean; } public void setPageBean(PageBean pageBean) { this.pageBean = pageBean; } }
struts.properties
struts.enable.DynamicMethodInvocation=false struts.objectFactory=spring struts.devMode=false struts.custom.i18n.resources=message struts.locale=UTF-8 struts.i18n.encoding=UTF-8 struts.ui.theme=simple struts.multipart.maxSize=209715200
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://192.168.1.100:3306/oa"/> <property name="username" value="root"/> <property name="password" value="root"/> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="annotatedClasses"> <list> <value>com.qtec.entity.Log</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> </props> </property> </bean> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"/> </bean> <bean id="memberDao" class="com.qtec.dao.MemberDaoImpl"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <bean id="memberService" class="com.qtec.service.MemberServiceImpl"> <property name="memberDao" ref="memberDao"/> </bean> <bean id="memberAction" class="com.qtec.action.MemberAction" scope="prototype"> <property name="memberService" ref="memberService"/> </bean> </beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>Page</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> <init-param> <param-name>actionPackages</param-name> <param-value>com.qtec.action</param-value> </init-param> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Members List</title> </head> <body> <table> <tr> <td>Log Id</td> <td>Log Type</td> <td>Event</td> <td>Registration Date Time</td> <td>Registration User Id</td> </tr> <s:iterator value="pageBean.list"> <tr> <td><s:property value="log_id"/></td> <td><s:property value="log_type"/></td> <td><s:property value="event"/></td> <td><s:property value="reg_datetime"/>||</td> <td><s:property value="reg_user_id"/></td> </tr> </s:iterator> <tr> <td> 总共: <s:property value="pageBean.allRow"/> 条记录 </td> <td> 共:<s:property value="pageBean.totalPage"/>页 </td> <td> 当前第 <s:property value="pageBean.currentPage"/>页 </td> <td> <s:if test="%{pageBean.currentPage == 1}"> 第一页 上一页 </s:if> <s:else> <a href="member.action?page=1">第一页</a> <a href="member.action?page=<s:property value="%{pageBean.currentPage-1}"/>">上一页</a> </s:else> </td> <td> <s:if test="%{pageBean.currentPage != pageBean.totalPage}"> <a href="member.action?page=<s:property value="%{pageBean.currentPage+1}"/>">下一页</a> <a href="member.action?page=<s:property value="%{pageBean.totalPage}"/>">最后一页</a> </s:if> <s:else> 下一页 最后一页 </s:else> </td> </tr> </table> </body> </html>
相关推荐
struts2 + spring 3 + hibernate3.3整合实现图书馆管理系统登陆和注册,以及一个对书籍表的增删改查,分页显示。
Struts2 + Spring2 + Hibernate3经典分页(包含java及jsp源码) Struts2 + Spring2 + Hibernate3经典分页(包含java及jsp源码) Struts2 + Spring2 + Hibernate3经典分页(包含java及jsp源码)
本例主要是实现了struts2+spring3+hibernate3的 基本框架搭建的注册登录,以及用户增删改查,适于初学者学习。 包括:注册 登录功能 分页的实现 前端校验 验证码的实现 注册时有ajax 校验,登录时 后台从数据库...
系统搭建使用struts2 + spring + hibernate + easyui 整合的, 功能包括: 分页查询,自定义页面数据显示量,用户名模糊搜索,创建时间段,更新时间段内用户信息搜索,双击行进行编辑,多行选中删除,右键菜单已经写好...
此项目整合了目前主流和最前源的web开发技术:采用ehcache实现二级缓存(包含查询缓存);用sf4j及logback(log4j的升级版)记录日志;proxool(据说是dbcp和c3p0三者中最优秀的)做连接池;使用jquery的ajax实现仿...
Struts2 + Spring + Hibernate的整合包含增加,修改,删除和分页。只是没有jar包。
SSH项目整合,包含本项目所有的JAR包,基于mysql数据库,完成了基本的“增,删,改,查,完整分页”,另外做了一点js验证,以及建表,插入指定数量的随机测试数据...... 绝对值这个分。
2.Action里通过struts2-spring-plugin.jar插件自动根据名字注入。 3.Ajax无刷新异步调用Struts2,返回Json数据,以用户注册为例。 4.在服务端分页查询功能,优点:实时性:跳页才查询。数据量小:只加载当前页的记录...
三大最新流行框架整合,此实例包括了注册、查询、搜索、分页四大功能,适合入门的人学习,希望对你们有帮助。
STRUTS2+HIBERNATE分页 实现代码详细的分页实现代码实现代码详细的分页实现代码实现代码详细的分页实现代码实现代码详细的分页实现代码
此压缩包含有两个工程,一个工程是struts2+spring2.5+hibernate3.3整合的服务器端技术(全注解)(云端),另一个工程是android的手机应用,包含对ssh整合的云端数据的访问,能够在android输入信息,将数据传递给...
利用ext3+struts2+hibernate+spring的CRUD+分页这四个框架实现crud,详细说明grid的用法,
本版本全面更新了jar包,全部使用了当前最新版本的jar包,struct2.1.8 spring3 hibernate3.5,全面使用注解取代xm的l配置。 另外增加了一个ant构建脚本,支持使用hudson完成每日构建,持续集成,自动测试,代码规范...
struts2.3.24 + spring4.1.6 + hibernate4.3.9 + eclipse 分页
struts2+spring+hibernate分页,事务,自定义切面,事务的配置
struts2+spring+hibernate分页显示的完美解决方案
struts2+spring+hibernate3的简易图书管理系统,特别适合初学者集成! 实现了简单的分页和模糊查询。(基本上涵盖了开发ssh2的包),值得拥有哦! 注:数据库sql文件(mysql 5.5)在里面,要自己配好!
struts2+spring+hibernate分页查询
我收集的一个struts2+spring2+hibernate3完整好实例已经转成pdf格式,找了很久,这个属于最好的一个!也是比较完整的一个,里面包括了分页代码!
使用Struts + Spring + Hibernate完成分页笔记使用Struts + Spring + Hibernate完成分页笔记使用Struts + Spring + Hibernate完成分页笔记