java-用SSH框架实现将查询的信息分页显示
来源:互联网 发布:英国圣玛丽大学知乎 编辑:程序博客网 时间:2024/06/03 15:20
以查询学生表的信息为例:
1. 分页类
package com.tool;public class pageShow {//此类用于分页private int pageNow;//当前页private int totalSize;//总条数private int totalPage;//总页数private int pageSize=10;//每页显示条数private boolean hasPre;//是否有上一页private boolean hasNext;//是否有下一页private boolean hasFirst;//是否有首页private boolean hasLast;//是否有尾页public pageShow(int pageNow,int totalSize){//构造方法this.setPageNow(pageNow);this.setTotalSize(totalSize);}public pageShow(int pageNow,int totalSize,int pageSize){//可动态改变每页条数//构造方法this.setPageNow(pageNow);this.setTotalSize(totalSize);this.pageSize=pageSize;}public void setPageNow(int pageNow) {//得到当前页this.pageNow = pageNow;}public int getPageNow() {return pageNow;}public void setTotalSize(int totalSize) {//总条数 this.totalSize = totalSize;}public int getTotalSize() {return totalSize;}public void setPageSize(int pageSize) {//每页显示条数this.pageSize = pageSize;}public int getPageSize() {return pageSize;}public int getTotalPage() {//总页数 = 总条数/每页显示条数totalPage=this.getTotalSize()/this.getPageSize();if(this.getTotalSize()%this.getPageSize()!=0){totalPage++; //若余数为不0 则要多加一页}return totalPage;}public void setTotalPage(int totalPage) {this.totalPage = totalPage;}public boolean isHasPre() {//是否有上一页 除第一页以外都有上一页 说明有首页的就有上一页if(this.isHasFirst()){return true;}else return false;}public void setHasPre(boolean hasPre) {this.hasPre = hasPre;}public boolean isHasNext() {//是否有下一页 除最后一页以外都有下一页 说明有尾页的就有下一页if(this.isHasLast()){return true;}else return false;}public void setHasNext(boolean hasNext) {this.hasNext = hasNext;}public boolean isHasFirst() {//是否有首页 除第一页以外都有首页if(this.pageNow==1)//是第一页就没有首页return false;elsereturn true;}public void setHasFirst(boolean hasFirst) {this.hasFirst = hasFirst;}public boolean isHasLast() {//是否有尾页 除最后一页以外都有尾页if(pageNow==this.getTotalPage()){//最后一页return false;}else return true;}public void setHasLast(boolean hasLast) {this.hasLast = hasLast;}}
2.持久层DAO代码a.BaseDao类(用于获取操作数据库的session对象)
package com.Dao.Imp; import org.hibernate.Session; import org.hibernate.SessionFactory; public class BaseDao { private SessionFactory sessionFactory;//要设置注入 public Session getSession() { return this.sessionFactory.openSession();//得到session对象 } public SessionFactory getSessionFactory() { return this.sessionFactory; } public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } }
b.XsDaoImp类(操作数据库)package com.Dao.Imp;import com.Dao.XsDAO;import com.vo.Xsb;import java.util.List;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction;public class XsDaoImp extends BaseDao implements XsDAO {public List getAllXs(int pageNow, int pageSize){// 查询所有学生 分页页Session session = getSession();//父类方法String hql = "from Xsb";Query query = session.createQuery(hql);//执行查询操作query.setFirstResult((pageNow - 1) * pageSize);query.setMaxResults(pageSize);List XsList = query.list();session.close();session=null;if (XsList.size() > 0) {return XsList;}return null;}public int findXsSize() {// 所有学生个数Session session = getSession();String hql = "from Xsb";int size = session.createQuery(hql).list().size();session.close();return size;}}
3.业务层service(调用dao层的方法)
package com.service.Imp;import com.Dao.XsDAO;import com.service.XsService;import com.vo.Xsb;import java.util.List;public class XsServiceImp implements XsService {private XsDAO xsdao;public List getAllXs(int page, int pageSize)// 查询所有学生 分页{List XsList = this.xsdao.getAllXs(page, pageSize);return XsList;}public int findXsSize() {// 所有学生个数// TODO Auto-generated method stubreturn this.xsdao.findXsSize();}}
4.action类
package com.action;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import com.service.XsService;import com.service.ZyService;import com.tool.pageShow;import com.vo.Xsb;import java.util.List;import java.util.Map;import org.apache.struts2.ServletActionContext;public class XsAction extends ActionSupport {private XsService xsService;// 要设置注入private Xsb xs;private int pageNow = 1;// 动态改变 页面取得private int pageSize = 5;// 固定不变public String getAllXs() {List XsList = this.xsService.getAllXs(pageNow, pageSize);if (XsList.size() > 0) {// 学生列表Map session = ActionContext.getContext().getSession();Map request = (Map) ActionContext.getContext().get("request");session.put("XsList", XsList);// 保存在sessionpageShow page = new pageShow(pageNow, xsService.findXsSize(), pageSize);// 实例化分页对象request.put("page", page);// 保存到requestreturn "success";}return "error";}public void setXsService(XsService xsService) {//设置注入servicethis.xsService = xsService;}public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize = pageSize;}public int getPageNow() {return pageNow;}public void setPageNow(int pageNow) {this.pageNow = pageNow;}}
5.表示层:jsp页面代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><%@taglib prefix="s" uri="/struts-tags"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'LookXsInfo.jsp' starting page</title> </head> <body bgcolor="#D9DFAA" > <table border="1"> <tr> <td>学号</td> <td>姓名</td> <td>性别</td> <td>专业</td> <td>出生时间</td> <td>总学分</td> </tr> <s:iterator value="#session.XsList" id="xs"> <!-- 获得保存在session中的学生信息列表XsList--> <tr> <td><s:property value="#xs.xh"></s:property></td> <td><s:property value="#xs.xm"></s:property></td> <td><s:if test="#xs.xb==1">男</s:if><s:else >女</s:else></td> <td><s:property value="#xs.zy.zym"></s:property></td> <td><s:date name="#xs.cssj" format="yyyy-MM-dd"></s:date></td> <td><s:property value="#xs.zxf"></s:property></td> </tr> </s:iterator> <s:set name="page" value="#request.page"></s:set> <tr> <td colspan="9"> 当前是第<s:property value="#page.pageNow"/>页,共<s:property value="#page.totalPage"/>页 <s:if test="#page.hasFirst"> <a href="allXs?pageNow=1" target="main">首页</a> </s:if> <s:if test="#page.hasPre"> <a href="allXs?pageNow=<s:property value="#page.pageNow-1"/> " target="main">上一页</a> </s:if> <s:if test="#page.hasNext"> <a href="allXs?pageNow=<s:property value="#page.pageNow+1" />" target="main">下一页</a></s:if> <s:if test="#page.hasLast"> <a href="allXs?pageNow=<s:property value="#page.totalPage"/>" target="main">尾页</a> </s:if> </td> </tr> </table> </body></html>
6.配置文件
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:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"><property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"></property><property name="url"value="jdbc:sqlserver://localhost:1433;databaseName=xscj"></property><property name="username" value="sa"></property><property name="password" value="root"></property></bean><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource"><ref bean="dataSource"></ref></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop></props></property><property name="mappingResources"><list><value>com/vo/Cjb.hbm.xml</value><value>com/vo/Dlb.hbm.xml</value><value>com/vo/Kcb.hbm.xml</value><value>com/vo/XsKcb.hbm.xml</value><value>com/vo/Xsb.hbm.xml</value><value>com/vo/Zyb.hbm.xml</value></list></property></bean><bean id="baseDao" class="com.Dao.Imp.BaseDao"><property name="sessionFactory"><ref bean="sessionFactory" /></property></bean><bean id="XsDao" class="com.Dao.Imp.XsDaoImp" parent="baseDao"></bean><bean id="XsService" class="com.service.Imp.XsServiceImp"><property name="xsdao" ref="XsDao"></property></bean><bean id="allXsAction" class="com.action.XsAction"><property name="xsService" ref="XsService"></property></bean></beans>
1 0
- java-用SSH框架实现将查询的信息分页显示
- SSI框架---实现查询结果分页显示
- ssh实现查询分页
- ssh实现分页查询
- ssh实现分页显示
- 基于SSH的分页查询实现
- SSH框架下的条件查询及查询结果分页
- SSM框架下的分页查询显示
- ssh分页查询和显示
- Java实现页面显示中的信息分页
- 基于SSH框架的分页实现
- SSH实现的分页查询和分页实现
- Java实现简单分页查询显示
- SSH框架里面实现分页
- SSH 完美实现分页显示
- SSH分页(Hibernate实现简单分页查询)
- SSH分页(Hibernate实现简单分页查询)
- SSH分页(Hibernate实现简单分页查询)
- eclipse中pydev文件注释乱码
- Lua中简单入门
- 【UNITY莫名其妙的问题】多语言化Localtion的工具?I2遇到的问题
- Content Provider的使用---联系人
- Git运用基础之如何删除Github上不想要的项目
- java-用SSH框架实现将查询的信息分页显示
- 使用bootstrap-select遇到的坑
- 顺序循环队列
- Git的基本用法
- 什么是redis,redis能做什么,redis的应用场景
- 关于asp.net mvc JavaScriptResult的一些用法记录
- Hello World
- 使用C#编写COM组件在网页中调用ActiveXObject
- 都市环游