`
LD_21
  • 浏览: 130065 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

struts2 spring hibernate 分页显示

    博客分类:
  • s2sh
阅读更多

--引用一个不错的S2SH分页的实力:

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+HIBERNATE详细的分页实现代码详细的分页实现代码

    根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要探讨的是如何在Struts2与Hibernate框架结合下实现分页功能。接下来将详细解析Struts2与Hibernate如何协作完成这一任务。 ### Struts2与Hibernate...

    struts2+spring+hibernate分页显示

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

    struts spring hibernate 登陆 SSH整合分页功能

    struts spring hibernate 登陆 SSH整合分页功能 SSH整合分页struts spring hibernate 登陆 SSH整合分页功能 SSH整合分页struts spring hibernate 登陆 SSH整合分页功能 SSH整合分页

    struts hibernate spring 分页ssh分页

    1. **配置分页插件**:Spring或Struts中可以配置第三方的分页插件,例如PageHelper,它提供了对Hibernate和MyBatis的分页支持。 2. **在DAO层实现分页查询**:使用Hibernate的Criteria、HQL或者SQL配合分页参数(如...

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

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

    开发基于Struts Spring Hibernate Ajax的网上信息发布平台(Struts Hibernate Spring Ajax)--Chapter1

    在本章中,我们将深入探讨如何开发一个基于Struts、Spring、Hibernate和Ajax的网上信息发布平台。这四个技术是Java Web开发中的核心组件,它们各自承担着不同的职责,共同构建了一个强大而灵活的后端架构。 **...

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

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

    Struts2 hibernate spring分页实例

    在这个“Struts2 Hibernate Spring分页实例”中,开发者将展示如何在这些框架的集成环境中实现数据的分页显示。分页是Web应用中常见的一种功能,它能够帮助用户更好地浏览和管理大量的数据,避免一次性加载过多内容...

    struts+spring+hibernate 分页

    在 Struts+Spring+Hibernate 结构中实现分页,需要结合这三大框架的特点来设计和实现。 首先,Struts 在控制器层中处理用户的请求,比如用户点击分页链接时,Struts 框架会调用相应的Action类方法。在这个方法中,...

    spring+struts2+hibernate整合实现分页

    在这个项目中,“spring+struts2+hibernate整合实现分页”是一个基础教程,旨在帮助初学者理解如何在SSH框架下实现数据的分页展示。下面将详细讲解这个主题中的关键知识点。 1. **Spring框架**:Spring是Java应用的...

    Struts2,Spring与Hibernate整合应用,学生成绩管理系统

    通过整合Struts2、Spring与Hibernate,学生成绩管理系统不仅实现了基本的登录、学生信息和成绩管理功能,还通过分页技术增强了用户体验。更重要的是,这一整合展示了如何利用现代Java EE框架构建复杂企业级应用的...

    Struts2 hibernate spring分页配套lib(2)

    Struts2 hibernate spring分页配套lib(2) 上传的可真慢啊 Struts2 hibernate spring分页配套lib(3)我始终上传不上去 不知道怎么弄的 例子运行http://localhost:8080/page/emp/list.action

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

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

    hibernate,struts,spring,JSP,实现分页技术

    JAVA分页大全.doc Hibernate分页查询.doc hibernate实现分页技术.txt struts实现分页技术源代码txt Struts+hibernate制作分页的问题txt spring+struts+hibernate ...spring+hibernate分页技术.txt jsp实现分页技术.txt

    Struts2 + Hibernate + Spring 实现的分页显示数据

    这个名为"Struts2 + Hibernate + Spring 实现的分页显示数据"的项目,展示了如何利用这三个框架来实现一个功能强大的数据管理应用,特别是对于大数据集的分页展示。以下是对这些框架和分页技术的详细解释。 **...

    struts2 spring hibernate使用XML的整合方式

    ### Struts2、Spring、Hibernate使用XML的整合方式 #### 概述 本文档将详细介绍如何使用XML配置文件实现Struts2、Spring以及Hibernate(通常称为SSH)这三种技术的整合,以支持一个简单的商品管理系统。这个系统...

    Struts2 hibernate spring分页配套lib(1)

    Struts2 hibernate spring分页配套lib 共三个分卷 这是一

    struts2+hibernate+spring分页

    在"struts2+hibernate+spring分页"的场景中,Struts2将处理分页请求,接收页码、每页显示数量等参数,并调用服务层的方法来获取特定页的数据。 Hibernate是一个持久化框架,它简化了数据库操作,通过ORM(对象关系...

Global site tag (gtag.js) - Google Analytics