`

struts2+spring+hibernate分页

阅读更多
J2EE系统中分页显示,修改dao层,service层,action层,两个分页类文件,代码如下:




dao层接口:
package com.last999.im.news.dao;
import java.util.*;
import com.last999.im.news.entity.KindEntity;
import com.last999.im.news.web.PageTool;
public interface KindEntityDao{
    public KindEntity get(String uuid);
    public void save(KindEntity kindEntity);
    public void update(KindEntity kindEntity);
    public void delete(String uuid);
    public void delete(KindEntity kindEntity);
    public List<KindEntity> findAll();
    public KindEntity findKindEntityByName(String name);
    public List<KindEntity> getKindEntity(PageTool pageInfo);
    public int getRows();
}






实现类:
package com.last999.im.news.dao.impl;
import java.util.*;
import com.last999.im.news.dao.KindEntityDao;
import com.last999.im.news.entity.KindEntity;
import com.last999.im.news.web.PageTool;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.HibernateException;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public class KindEntityDaoHibernate extends HibernateDaoSupport implements KindEntityDao{
    public KindEntity get(String uuid){
        return (KindEntity)getHibernateTemplate().get(KindEntity.class,uuid);
    }
    public void save(KindEntity kindEntity){
        getHibernateTemplate().save(kindEntity);
    }
    public void update(KindEntity kindEntity){
        getHibernateTemplate().saveOrUpdate(kindEntity);
    }
    public void delete(KindEntity kindEntity){
        getHibernateTemplate().delete(kindEntity);
    }
    public void delete(String uuid){
        getHibernateTemplate().delete((KindEntity)getHibernateTemplate().get(KindEntity.class,uuid));
    }
    public List findAll(){
        return getHibernateTemplate().find("from KindEntity");
    }
    public KindEntity findKindEntityByName(String name){
        List k1 = getHibernateTemplate().find("from KindEntity as ke where ke.name = ?",name);
        if (k1 != null && k1.size() == 1){
            return (KindEntity)k1.get(0);
        }
        return null;
    }
    public int getRows(){
        return getHibernateTemplate().find("from KindEntity").size();
    }
    public List getKindEntity(PageTool pageInfo){
        final int size1=pageInfo.getSize();
        final int startRow=(pageInfo.getCur()-1)*pageInfo.getSize();
        return this.getHibernateTemplate().executeFind(new HibernateCallback(){
            public List doInHibernate(Session session) throws HibernateException{
                Query query = session.createQuery("from KindEntity");
                query.setFirstResult(startRow);
                query.setMaxResults(size1);
                return query.list();
            }
        }
        );
    }
}





SERVICE层接口:
package com.last999.im.news.service;
import java.util.List;
import com.last999.im.news.web.PageTool;
import com.last999.im.news.entity.KindEntity;
public interface KindEntityManage{
    public void addKindEntity(KindEntity entity);
    public List findAllKind();
    public int getRows();
    public List getKindEntity(PageTool pageInfo);
}





实现类:
package com.last999.im.news.service.impl;
import java.util.List;
import com.last999.im.news.web.PageTool;
import com.last999.im.news.entity.KindEntity;
import com.last999.im.news.service.KindEntityManage;
import com.last999.im.news.dao.KindEntityDao;
public class KindEntityManageImpl implements KindEntityManage{
    private KindEntityDao kindEntityDao;
    public KindEntityDao getKindEntityDao(){
        return this.kindEntityDao;
    }
    public void setKindEntityDao(KindEntityDao kindEntityDao) {
        this.kindEntityDao=kindEntityDao;
    }
    public void addKindEntity(KindEntity kindEntity){
        this.getKindEntityDao().save(kindEntity);
    }
    public List findAllKind(){
        return this.getKindEntityDao().findAll();
    }
    public int getRows(){
        return this.getKindEntityDao().getRows();
    }
    public List getKindEntity(PageTool pageInfo){
        return this.getKindEntityDao().getKindEntity(pageInfo);
    }
}





action类:
package com.last999.im.news.action;
import java.util.List;
import com.last999.im.news.web.PageTool;
import com.last999.im.news.web.PageMaker;
import com.last999.im.news.entity.KindEntity;
import com.last999.im.news.service.KindEntityManage;
public class KindViewAction extends SafeStruts2{
    private List kindList;
    private KindEntity kindEntity;
    private KindEntityManage kindEntityManage;
    private int ppp;
    private PageMaker pageMaker;
    private String pager;
    public String getPager(){
        return this.pager;
    }
    public void setPager(String pager) {
        this.pager=pager;
    }
    public PageMaker getPageMaker(){
        return this.pageMaker;
    }
    public void setPageMaker(PageMaker pageMaker) {
        this.pageMaker=pageMaker;
    }
    public int getPpp(){
        return this.ppp;
    }
    public void setPpp(int ppp) {
        this.ppp=ppp;
    }
    public KindEntityManage getKindEntityManage(){
        return this.kindEntityManage;
    }
    public void setKindEntityManage(KindEntityManage kindEntityManage) {
        this.kindEntityManage=kindEntityManage;
    }
    public KindEntity getKindEntity(){
        return this.kindEntity;
    }
    public void setKindEntity(KindEntity kindEntity) {
        this.kindEntity=kindEntity;
    }
    public List getKindList(){
        return this.kindList;
    }
    public void setKindList(List kindList) {
        this.kindList=kindList;
    }
    public String kindView(){
        PageTool pageInfo = new PageTool();
        pageInfo.setCur(this.getPpp());
        pageInfo.setTotal(this.getKindEntityManage().getRows());
        setKindList(this.getKindEntityManage().getKindEntity(pageInfo));
        PageMaker pageMaker = new PageMaker();
        setPager(pageMaker.makeList(pageInfo,"kindView.action?ppp="));
        return SUCCESS;
    }
}





分页辅助工具类:
package com.last999.im.news.web;

public class PageTool{
    
    private int cur=1;
    private int size=6;
    private int total=1;

    public int getCur(){
        return this.cur;
    }
    public void setCur(int cur) {
        this.cur=cur;
    }
    public int getSize(){
        return this.size;
    }
    public void setSize(int size) {
        this.size=size;
    }
    public int getTotal(){
        return this.total;
    }
    public void setTotal(int total) {
        this.total=total;
    }

    public PageTool(){}

    public PageTool(int cur,int size,int total){
        this.cur=cur;
        this.size=size;
        this.total=total;
    }

    public PageTool(int size){
        this.size=size;
        this.cur=1;
        this.total=1;
    }
}





PageMaker.java

package com.last999.im.news.web;


import com.last999.im.news.web.PageTool;

public class PageMaker {
    public PageMaker(){}
    public String makeList(PageTool pageinfo,String url){
       int  linkNumber=10;
       int  halfLinkNumber=5;
       String pageStyle="<style> .ptbl {border:1px solid #CEDBEF;font-size:12px;padding:0;font-family:Arial;width:auto} .ptbl a {text-decoration:none;color:#555555} .ptbl td {padding-top:0px;padding-bottom:0px;padding-left:4px;padding-right:4px}    .strong {background:#CEDBEF;font-weight:800;color:#FF7D00}    .strong a{color:#FF7D00} .page_input {background:#ffffff;border:1px solid #CEDBEF;border-top:none;border-bottom:none;color:#FF7D00;width:30px;margin:0px } </style>";
       String pageTable="<table border='0'cellpadding='0' cellspacing='0' bgcolor='#CEDBEF' class='ptbl'><tr align='center' bgcolor='#FFFBFF'>";
       //a string that will be decretion to show
        StringBuffer pagelist=new StringBuffer("");
        //get current page.
        int curpage=pageinfo.getCur();
        int pagenumber=pageinfo.getTotal()/pageinfo.getSize()+1;
        //make it's pre,next page
        int prepage=curpage-1;
        prepage=prepage<=0?1:prepage;
        int nextpage=curpage+1;
        nextpage=nextpage>=pagenumber?pagenumber:nextpage;
        //finger out how many page total
        pagelist.append(pageStyle);
        pagelist.append(pageTable);
        pagelist.append("<td>Record:<font color='red'>"+pageinfo.getTotal()+"</font></td>");
        //frist page
        //pagelist.append("<td><a href='"+url+"1'>|&lt;</a></td>");
        //pagelist.append("<td><a href='"+url+prepage+"'>&lt;</a></td>");
       if (pagenumber<=linkNumber){
          for(int i=1;i<=pagenumber;i++){
            if(i==curpage)
               pagelist.append("<td class='strong'>"+i+"</td>");
            else
               pagelist.append("<td><a href='"+url+i+"'>"+i+"</a></td>");
          }
       }else{
          int begin=curpage-halfLinkNumber;
          begin=(begin<=0)?1:begin;
          begin=((halfLinkNumber+curpage)>pagenumber) ? (pagenumber-linkNumber+1):begin;
          for(int i=begin;i<=linkNumber+begin-1;i++){
            if(i==curpage){
               pagelist.append("<td class='strong'>"+i+"</td>");
               pagelist.append("\n");
            }
            else{
               pagelist.append("<td><a href='<s:url action='"+url+"'><s:param name='ppp' value='"+i+"'/></s:url>'>"+i+"</a></td>");
               pagelist.append("\n");
            }
          }
       }
        //pagelist.append("<td><a href='"+url+nextpage+"'>&gt;</a></td>");
        //pagelist.append("<td><a href='"+url+pagenumber+"'>&gt;|</a></td>");
        pagelist.append("<td>Page:<font color='red'>"+pagenumber+"</font></td></tr></table>");
        return pagelist.toString();
    }
}







KindEntity.java


package com.last999.im.news.entity;
/**
 * @hibernate.class
 * table="kind"
 * dynamic-update="true"
 */
public class KindEntity extends Persistent{
    private String title;
    private String content;
    private String parentId;
    private String description;
    /**
     * @hibernate.property
     */
    public String getDescription(){
        return this.description;
    }
    public void setDescription(String description) {
        this.description=description;
    }
    private String em1;
    private String em2;
    private String em3;
    /**
     * @hibernate.property
     */
    public String getEm3(){
        return this.em3;
    }
    public void setEm3(String em3) {
        this.em3=em3;
    }
    /**
     * @hibernate.property
     */
    public String getEm2(){
        return this.em2;
    }
    public void setEm2(String em2) {
        this.em2=em2;
    }
    /**
     * @hibernate.property
     */
    public String getEm1(){
        return this.em1;
    }
    public void setEm1(String em1) {
        this.em1=em1;
    }
    /**
     * @hibernate.property
     */
    public String getParentId(){
        return this.parentId;
    }
    public void setParentId(String parentId) {
        this.parentId=parentId;
    }
    /**
     * @hibernate.property
     * @hibernate.column name="content" sql-type="TEXT"
     */
    public String getContent(){
        return this.content;
    }
    public void setContent(String content) {
        this.content=content;
    }
    /**
     * @hibernate.property 
     */
    public String getTitle(){
        return this.title;
    }
    public void setTitle(String title) {
        this.title=title;
    }
}







为什么没有在页面接收的代码:



<%@ page contentType="text/html;charset=utf-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
  <head>
    <title>
      showkind
    </title>
  </head>
  <html>
    <body>
    <center>
      <table border="1">
        <tr>
          <td>
        <table border="0" width="755" bgcolor="#eeeeee">
          <tr>
            <font size="3">
              <b>
              These are all the kinds:
              </b>
            </font>
          </tr>
          <tr>
            <td width="%25">title</td>
            <td width="%25">description</td>
            <td width="%25">parentId</td>
            <td width="25%">Content</td> 
          </tr>
          <s:iterator value="%{kindList}" id="kind">
          <tr>
            <td>
              <s:property value="#kind.title"/>
            </td>
            <td>
              <s:property value="#kind.description"/>
            </td>
            <td>
              <s:property value="#kind.parentId"/>
            </td>
            <td>
              <s:property value="#kind.content"/>
            </td>
   <!--
            <td>
              <a href="<s:url action='kindDelete'><s:param name='uuid' value='#kind.uuid'/></s:url>">Delete</a>
            </td>
   -->
     </s:iterator>
        </tr>
   </table>
 </td>
 </tr>
 </table>
 <s:property value="pager" escape="false"/>
 </center>
 </body>
 </html>
分享到:
评论

相关推荐

    Struts2+Spring3+Hibernate3 用户管理系统实例源码

    本例主要是实现了struts2+spring3+hibernate3的 基本框架搭建的注册登录,以及用户增删改查,适于初学者学习。 包括:注册 登录功能 分页的实现 前端校验 验证码的实现 注册时有ajax 校验,登录时 后台从数据库...

    struts2+spring2+hibernate3注册查询搜索分页实例

    总的来说,这个"Struts2+Spring2+Hibernate3注册查询搜索分页实例"是一个很好的学习资源,涵盖了Java Web开发中的基础和核心部分。通过学习这个实例,开发者不仅可以掌握三大框架的基本用法,还能了解到如何将它们...

    struts2 + spring 3 + hibernate3.3整合实现图书馆管理管理

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们的整合应用广泛用于构建复杂的Web应用程序,如本例中的图书馆管理系统。这个系统实现了用户登录和注册功能,并且提供了对书籍表的操作,包括增、删、改...

    struts2+spring+hibernate分页显示

    在这个“Struts2+Spring+Hibernate分页显示”的解决方案中,我们将深入探讨如何利用这三大框架实现数据的分页展示。 Struts2作为MVC(模型-视图-控制器)架构的一部分,主要负责处理HTTP请求,控制应用程序的流程。...

    Struts2.1.8+Spring2.5.6+Hibernate3.3.2项目整合

    Struts2.1.8+Spring2.5.6+Hibernate3.3.2是经典的Java Web开发框架组合,常被称为SSH。这三个框架协同工作,为开发者提供了强大的模型-视图-控制器(MVC)架构支持,使得企业级应用的开发更加高效和模块化。 Struts...

    Struts2 + Spring2 + Hibernate3经典分页(包含java及jsp源码)

    ### Struts2 + Spring2 + Hibernate3 经典分页技术解析 #### 一、概述 在企业级应用开发中,分页显示是常见的需求之一。对于数据量较大的查询结果,采用分页的方式不仅能减轻服务器的压力,提高用户体验,还能更好...

    struts2 + spring + hibernate + easyui 整合用户信息管理小案例

    系统搭建使用struts2 + spring + hibernate + easyui 整合的, 功能包括: 分页查询,自定义页面数据显示量,用户名模糊搜索,创建时间段,更新时间段内用户信息搜索,双击行进行编辑,多行选中删除,右键菜单已经写好...

    struts2+spring+hibernate分页显示完整代码

    本篇文章将详细讲解如何在基于Struts2、Spring和Hibernate的项目中实现分页功能。 首先,我们从DAO层开始。在`MemberDao`接口中,我们定义了两个关键的方法,一个是用于分页查询,另一个是获取所有记录的数量。这两...

    struts2+spring+hibernate分页实例

    这是一个struts2+hibernate+spring整合的实例,带有分页功能,希望对刚接触struts2的朋友有些帮助。spring2.0,hibernate3.1分页用的是自字义标签,不要少了这个包standard.jar

    Struts2+Spring+Hibernate+Ehcache+AJAX+JQuery+Oracle 框架集成用户登录注册Demo工程

    2.Action里通过struts2-spring-plugin.jar插件自动根据名字注入。 3.Ajax无刷新异步调用Struts2,返回Json数据,以用户注册为例。 4.在服务端分页查询功能,优点:实时性:跳页才查询。数据量小:只加载当前页的记录...

    struts2+spring+hibernate分页,事务,自定义切面

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2主要用于MVC(模型-视图-控制器)架构的实现,Spring提供了强大的依赖注入和面向切面编程功能,而Hibernate则是一个优秀的...

    android访问struts2+spring+hibernate应用

    此压缩包含有两个工程,一个工程是struts2+spring2.5+hibernate3.3整合的服务器端技术(全注解)(云端),另一个工程是android的手机应用,包含对ssh整合的云端数据的访问,能够在android输入信息,将数据传递给...

    Struts2 + Spring 2.5 + Hibernate 3.3 整合(实际使用项目,version1)

    包含有完整的jar包和源代码,这是专门为我们实验室定制开发的,包含了架构基于s2sh技术网站的参考实现(包括了全部基础部分:如分页,缓存,文件上传,连接池等等)希望对初学JavaEE WEB开的人有所帮助。...

    ext3+struts2+hibernate+spring的CRUD+分页

    "ext3+struts2+hibernate+spring的CRUD+分页"是一个典型的Java Web开发组合,用于实现全面的数据管理功能。这个组合充分利用了各个框架的优势,提供了一个强大的后端数据处理和前端展示的解决方案。 首先,EXT3是一...

    struts2+spring+hibernate分页查询

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2主要用于MVC(Model-View-Controller)架构的实现,Spring作为全面的框架提供了依赖注入、事务管理、AOP(面向切面编程)等...

    struts2 + spring2 + hibernate3 .pdf

    根据提供的文件信息,本文将详细解析“Struts2 + Spring2 + Hibernate3”技术栈的集成与应用。本文主要从项目准备、环境搭建、公共类的设计等方面进行深入讲解。 ### 一、项目背景及意义 Struts2、Spring2 和 ...

    Struts2+Spring2+Hibernate3

    【Struts2+Spring2+Hibernate3】是一个经典的Java企业级开发组合,常用于构建复杂的Web应用程序,如图书管理系统。这个组合充分利用了每个框架的核心优势,以提高开发效率和代码的可维护性。 **Struts2** 是一个MVC...

    struts2+spring+hibernate3的简易图书管理系统

    struts2+spring+hibernate3的简易图书管理系统,特别适合初学者集成! 实现了简单的分页和模糊查询。(基本上涵盖了开发ssh2的包),值得拥有哦! 注:数据库sql文件(mysql 5.5)在里面,要自己配好!

Global site tag (gtag.js) - Google Analytics