`

ssh分页(多个例子)

阅读更多

---------------------------------------------------------------------
先是一个page的bean:

package com.leatherstore.other; 

public class Page { 

    /** 是否有上一页 */ 
    private boolean hasPrePage; 
    
    /** 是否有下一页 */ 
    private boolean hasNextPage; 
        
    /** 每页的数量 */ 
    private int everyPage; 
    
    /** 总页数 */ 
    private int totalPage; 
        
    /** 当前页*/ 
    private int currentPage; 
    
    /** 起始点 */ 
    private int beginIndex; 
    
    /** 总记录数*/ 
    private int totalCount; 
    
    /** 
* @return totalCount 
*/ 
public int getTotalCount() { 
return totalCount; 
} 

/** 
* @param totalCount 要设置的 totalCount 
*/ 
public void setTotalCount(int totalCount) { 
this.totalCount = totalCount; 
} 

/** The default constructor */ 
    public Page(){ 
        
    } 
    
    /** construct the page by everyPage 
     * @param everyPage 
     * */ 
    public Page(int everyPage){ 
        this.everyPage = everyPage; 
    } 
    
    /** The whole constructor */ 
    public Page(boolean hasPrePage, boolean hasNextPage,  
                    int everyPage, int totalPage, 
                    int currentPage, int beginIndex,int totalCount) { 
        this.hasPrePage = hasPrePage; 
        this.hasNextPage = hasNextPage; 
        this.everyPage = everyPage; 
        this.totalPage = totalPage; 
        this.currentPage = currentPage; 
        this.beginIndex = beginIndex; 
        this.totalCount = totalCount; 
    } 

    /** 
     * @return 
     * Returns the beginIndex. 
     */ 
    public int getBeginIndex() { 
        return beginIndex; 
    } 
    
    /** 
     * @param beginIndex 
     * The beginIndex to set. 
     */ 
    public void setBeginIndex(int beginIndex) { 
        this.beginIndex = beginIndex; 
    } 
    
    /** 
     * @return 
     * Returns the currentPage. 
     */ 
    public int getCurrentPage() { 
        return currentPage; 
    } 
    
    /** 
     * @param currentPage 
     * The currentPage to set. 
     */ 
    public void setCurrentPage(int currentPage) { 
        this.currentPage = currentPage; 
    } 
    
    /** 
     * @return 
     * Returns the everyPage. 
     */ 
    public int getEveryPage() { 
        return everyPage; 
    } 
    
    /** 
     * @param everyPage 
     * The everyPage to set. 
     */ 
    public void setEveryPage(int everyPage) { 
        this.everyPage = everyPage; 
    } 
    
    /** 
     * @return 
     * Returns the hasNextPage. 
     */ 
    public boolean getHasNextPage() { 
        return hasNextPage; 
    } 
    
    /** 
     * @param hasNextPage 
     * The hasNextPage to set. 
     */ 
    public void setHasNextPage(boolean hasNextPage) { 
        this.hasNextPage = hasNextPage; 
    } 
    
    /** 
     * @return 
     * Returns the hasPrePage. 
     */ 
    public boolean getHasPrePage() { 
        return hasPrePage; 
    } 
    
    /** 
     * @param hasPrePage 
     * The hasPrePage to set. 
     */ 
    public void setHasPrePage(boolean hasPrePage) { 
        this.hasPrePage = hasPrePage; 
    } 
    
    /** 
     * @return Returns the totalPage. 
     * 
     */ 
    public int getTotalPage() { 
        return totalPage; 
    } 
    
    /** 
     * @param totalPage 
     * The totalPage to set. 
     */ 
    public void setTotalPage(int totalPage) { 
        this.totalPage = totalPage; 
    } 
} 
然后构建一个page的工厂PageUtil: 
package com.leatherstore.other; 

public class PageUtil { 
/** 
* Use the origin page to create a new page 
* 
* @param page 
* @param totalRecords 
* @return 
*/ 
public static Page createPage(Page page, int totalRecords) { 
return createPage(page.getEveryPage(), page.getCurrentPage(), 
totalRecords); 
} 

/** 
* the basic page utils not including exception handler 
* 
* @param everyPage 
* @param currentPage 
* @param totalRecords 
* @return page 
*/ 
public static Page createPage(int everyPage, int currentPage, 
int totalRecords) { 
everyPage = getEveryPage(everyPage); 
currentPage = getCurrentPage(currentPage); 
int beginIndex = getBeginIndex(everyPage, currentPage); 
int totalPage = getTotalPage(everyPage, totalRecords); 
boolean hasNextPage = hasNextPage(currentPage, totalPage); 
boolean hasPrePage = hasPrePage(currentPage); 

return new Page(hasPrePage, hasNextPage, everyPage, totalPage, 
currentPage, beginIndex, totalRecords); 
} 

private static int getEveryPage(int everyPage) { 
return everyPage == 0 ? 10 : everyPage; 
} 

private static int getCurrentPage(int currentPage) { 
return currentPage == 0 ? 1 : currentPage; 
} 

private static int getBeginIndex(int everyPage, int currentPage) { 
return (currentPage - 1) * everyPage; 
} 

private static int getTotalPage(int everyPage, int totalRecords) { 
int totalPage = 0; 

if (totalRecords % everyPage == 0) 
totalPage = totalRecords / everyPage; 
else 
totalPage = totalRecords / everyPage + 1; 

return totalPage; 
} 

private static boolean hasPrePage(int currentPage) { 
return currentPage == 1 ? false : true; 
} 

private static boolean hasNextPage(int currentPage, int totalPage) { 
return currentPage == totalPage || totalPage == 0 ? false : true; 
} 

} 
然后建一个专用的bean: 
package com.leatherstore.hibernate.domain; 

import java.util.List; 

import com.leatherstore.other.Page; 

public class Result { 
private Page page;  //分页信息 
private List content;  //每页显示的集合 
/** 
     * The default constructor 
     */ 
    public Result() { 
        super(); 
    } 

    /** 
     * The constructor using fields 
     * 
     * @param page 
     * @param content 
     */ 
    public Result(Page page, List content) { 
        this.page = page; 
        this.content = content; 
    } 

    /** 
     * @return Returns the content. 
     */ 
    public List getContent() { 
        return content; 
    } 

    /** 
     * @return Returns the page. 
     */ 
    public Page getPage() { 
        return page; 
    } 

    /** 
     * @param content 
     *            The content to set. 
     */ 
    public void setContent(List content) { 
        this.content = content; 
    } 

    /** 
     * @param page 
     *            The page to set. 
     */ 
    public void setPage(Page page) { 
        this.page = page; 
    } 
} 

然后在数据访问层写两个方法: 
ProductDAO: 
public List getProductByPage(Page page);  
public int getProductCount();  //返回数据的总数 
ProductDAO的接口实现ProductDAOImpl: 
//为了在spring里统一编程风格:我用的回调的方法 
public List getProductByPage(final Page page) { 
return this.getHibernateTemplate().executeFind(new HibernateCallback(){ 
public Object doInHibernate(Session session) throws HibernateException, SQLException { 
Query query=session.createQuery("from Productinfo"); 
query.setFirstResult(page.getBeginIndex()); //hibernate分页的精髓   呵呵 
    query.setMaxResults(page.getEveryPage()); 
    return query.list(); 
} 
}); 
} 

public int getProductCount() { 
List list=this.getHibernateTemplate().find("select count(*) from Productinfo"); 
return ((Integer)list.iterator().next()).intValue(); 
} 
然后是业务层: 
IProduct: 
public Result listProduct(Page page); 
然后IProduct接口的实现:IProductImpl: 
private ProductDAO productDAO; 
public void setProductDAO(ProductDAO productDAO){ 
this.productDAO=productDAO; 
} 

public Result listProduct(Page page) { 
int totalRecords = this.productDAO.getProductCount(); 
page = PageUtil.createPage(page, totalRecords); 
        List products = this.productDAO.getProductByPage(page);      
        return new Result(page, products); 
} 
然后再代理层: 
ProductProxy: 
IProduct pro=(IProduct)AppContext.getInstance().getappcontext().getBean("productServicewithTran"); 

public Result productlist(Page page){ 
try{ 
return pro.listProduct(page); 
}catch(DataAccessException ex){ 
ex.printStackTrace(); 
return null; 
} 
} 
呵呵 终于到productAction啦 
显示前方法的代码 
Page page = new Page();   //实例化一个page对象 
page.setEveryPage(10);    //设置每页显示的条数 
page.setCurrentPage(1);    //为第一页 
Result result = pdp.productlist(page); 
request.setAttribute("page", pageinfo); 
request.setAttribute("productlist", list); 
return mapping.findForward("showProduct"); 
接着就是jsp页面了 
<logic:iterate id="product" name="productlist"> 
//中间迭代所要显示的数据 
</logic:iterate> 
<tr> 
    <td width="80" height="30">&nbsp;</td> 
    <logic:equal value="true" name="page" property="hasPrePage"> 
    <td width="150" height="30"><div align="right"><a href="../product.do?method=showProductByTag&index=first&msg=${msg }">首页</a></div></td> 
    <td width="80" height="30"><div align="center"><a href="../product.do?method=showProductByTag&index=prew&pageno=${page.currentPage -1}&msg=${msg }">上一页</a></div></td> 
    </logic:equal> 
    <logic:notEqual value="true" name="page" property="hasPrePage"> 
    <td width="150" height="30"><div align="right">首页</div></td> 
    <td width="80" height="30"><div align="center">上一页</div></td> 
    </logic:notEqual> 
    <logic:equal value="true" name="page" property="hasNextPage"> 
    <td width="80" height="30"><div align="center"><a href="../product.do?method=showProductByTag&index=next&pageno=${page.currentPage +1 }&msg=${msg }">下一页</a></div></td> 
    <td width="80" height="30"><div align="center"><a href="../product.do?method=showProductByTag&index=end&pageno=${page.totalPage }&msg=${msg }">尾页</a></div></td> 
    </logic:equal> 
    <logic:notEqual value="true" name="page" property="hasNextPage"> 
    <td width="80" height="30"><div align="center">下一页</div></td> 
    <td width="80" height="30"><div align="center">尾页</div></td> 
    </logic:notEqual> 
    <td height="30" colspan="3"><div align="center">页次${page.currentPage }/${page.totalPage }&nbsp;&nbsp;&nbsp;共${page.totalCount }条记录</div>      <div align="center"></div></td> 
  </tr> 
可以显示相应的页面信息 
然后productAction里面的showProductByTag代码如下: 
Page page = new Page(); 
page.setEveryPage(10); 
String pagemark = request.getParameter("goto"); 
if (pagemark == null) { 
String state = request.getParameter("index"); 
String pageno = request.getParameter("pageno"); 
System.out.println("pageno=" + pageno); 
if ("first".equals(state)) { 
page.setCurrentPage(1); 
Result result = pdp.productlist(page); 
request.setAttribute("page", result.getPage()); 
request.setAttribute("productlist", result.getContent()); 
} else if ("prew".equals(state)) { 
page.setCurrentPage(Integer.parseInt(pageno)); 
Result result = pdp.productlist(page); 
request.setAttribute("page", result.getPage()); 
request.setAttribute("productlist", result.getContent()); 
} else if ("next".equals(state)) { 
page.setCurrentPage(Integer.parseInt(pageno)); 
Result result = pdp.productlist(page); 
request.setAttribute("page", result.getPage()); 
request.setAttribute("productlist", result.getContent()); 
} else if ("end".equals(state)) { 
page.setCurrentPage(Integer.parseInt(pageno)); 
Result result = pdp.productlist(page); 
request.setAttribute("page", result.getPage()); 
request.setAttribute("productlist", result.getContent()); 
} 
} else { 
page.setCurrentPage(Integer.parseInt(pagemark)); 
Result result = pdp.productlist(page); 
request.setAttribute("page", result.getPage()); 
request.setAttribute("productlist", result.getContent()); 
} 
return mapping.findForward("showProduct"); 

 

-------------------------------------------------------------------

SSH的分页网上有不少的例子,有利用session的,有利用分页组件的。我几个师兄原来搞的SSH项目也有一个成熟的分页插件。

具体业务实现类中的分页方法:

public List get*****(int pageNO){ 
            DetachedCriteria dc = DetachedCriteria.forClass(****.class);            
            List list=*****Dao.getList(dc,pageNO,15); 
            int a = 0; 
            if (list.equals(null)){a=1;} 
            return list; 
        } 
public PageBean getBean(int pageNO) 
        { 
            ***** jg; 
             DetachedCriteria dc = DetachedCriteria.forClass(*****.class); 
            PageBean pb=collegeDao.getPageBean(dc,pageNO,15);        
            return pb; 
        } 


然后是一个PageBean的工具类,负责创建分页属性和基本逻辑。 

然后是页面的bean获取输出信息及分页属性。 

我觉得单纯的拷贝,自己用的不是很顺手。于是自己也搞了一个,个人认为可以清晰的分层,实现这个分页。分层还是传统的SSH七层结构。 

SSH结构思想参考我的另一篇随笔SSH思想之我见! 

下面是分页思想,一个初始化方法和一个分页实现方法: 

分页的util类: 

package com.sy.util; 

import java.util.List; 
@SuppressWarnings("unchecked") 
public class Page { 

    private int pageSize; 
    private int totalPage; 
    private int rowCount; 
    private int currentPage; 
    private int prePage; 
    private int nextPage; 
    private boolean hasNextPage; 
    private boolean hasPreviousPage; 
    private List list; 

    public Page() { 
        this.pageSize=10; 
    } 

    public int getPageSize() { 
        return pageSize; 
    } 

    public void setPageSize(int pageSize) { 
        this.pageSize = pageSize; 
    } 

    public int getTotalPage() { 
        return totalPage; 
    } 

    public void setTotalPage(int totalPage) { 
        this.totalPage = totalPage; 
    } 

    public int getRowCount() { 
        return rowCount; 
    } 

    public void setRowCount(int rowCount) { 
        this.rowCount = rowCount; 
    } 

    public int getCurrentPage() { 
        return currentPage; 
    } 

    public void setCurrentPage(int currentPage) { 
        this.currentPage = currentPage; 
    } 

    public int getPrePage() { 
        return prePage; 
    } 

    public void setPrePage(int prePage) { 
        this.prePage = prePage; 
    } 

    public int getNextPage() { 
        return nextPage; 
    } 

    public void setNextPage(int nextPage) { 
        this.nextPage = nextPage; 
    } 

    public boolean isHasNextPage() { 
        return hasNextPage; 
    } 

    public void setHasNextPage(boolean hasNextPage) { 
        this.hasNextPage = hasNextPage; 
    } 

    public boolean isHasPreviousPage() { 
        return hasPreviousPage; 
    } 

    public void setHasPreviousPage(boolean hasPreviousPage) { 
        this.hasPreviousPage = hasPreviousPage; 
    } 

    public List getList() { 
        return list; 
    } 

    public void setList(List list) { 
        this.list = list; 
    } 
    

} 



分页的数据库操作和逻辑判断我把他单独用一个PageDaoImpl来实现: 

/* 
* 施杨的分页daoimpl类 
* */ 
package com.sy.dao.impl; 

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.sy.dao.BaseDao; 
import com.sy.util.Page; 

@SuppressWarnings("unchecked") 
public class PageDaoImpl extends HibernateDaoSupport { 

    private String hql; 
    public Page page; 
    public int start; 
    public BaseDao dao; 
    public void setDao(BaseDao dao) { 
        this.dao = dao; 
    } 

    public void init(int start,String tableName){    // ͨ��init����ʵ����ij�ʼ�� 
       page = new Page(); 
       this.hql = "from "+tableName; 
       this.start = start; 
       setRowCount(); 
       setTotalPage(); 
       setCurrentPage(); 
       setPrePage(); 
       setNextPage(); 
       setPreOrNextBoolean(); 
    } 

    public int getRowCount(){ 
       List list = dao.find(hql); 
       if(list.isEmpty()){ 
        return 0; 
       } 
       return list.size(); 
    } 

    public Page getPage(){ 
       List list = (List)getHibernateTemplate().execute(new HibernateCallback(){ 
        public Object doInHibernate(Session session) throws HibernateException, SQLException { 
         Query query = session.createQuery(hql); 
         query.setFirstResult(getStartIndex()); 
         query.setMaxResults(page.getPageSize()); 
         return query.list(); 
        }   
       }); 
       page.setList(list); 
       return page; 
    } 
    
    public void setPreOrNextBoolean() { 
        if (page.getCurrentPage() <= 1) { 
            page.setHasPreviousPage(false); 
        } else { 
            page.setHasPreviousPage(true); 
        } 
        if (page.getCurrentPage() >= page.getTotalPage()) { 
            page.setHasNextPage(false); 
        } else { 
            page.setHasNextPage(true); 
        } 
    } 

    public void setCurrentPage() { 
        if (start < 1) { 
            page.setCurrentPage(1); 
        } 
        if (start > page.getTotalPage()) { 
            page.setCurrentPage(page.getTotalPage()); 
        } 
        page.setCurrentPage(start); 
    } 

    public void setPrePage() { 
        page.setPrePage(page.getCurrentPage() - 1); 
    } 

    public void setNextPage() { 
        page.setNextPage(page.getCurrentPage() + 1); 
    } 

    public void setTotalPage() { 
        int rowCount = getRowCount(); 
        int pageSize = page.getPageSize(); 
        if (rowCount > pageSize) { 
            if (rowCount % pageSize == 0) { 
                page.setTotalPage(rowCount / pageSize); 
            } else { 
                page.setTotalPage(1 + (rowCount / pageSize)); 
            } 
        } else { 
            page.setTotalPage(1); 
        } 
    } 

    public void setRowCount() { 
        page.setRowCount(getRowCount()); 
    } 

    public int getStartIndex() { 
        int startIndex = 0; 
        if (start < 0) { 
            startIndex = 0; 
        } else { 
            if (start > page.getTotalPage()) { 
                startIndex = page.getPageSize() * (page.getTotalPage() - 1); 
            } else { 
                startIndex = page.getPageSize() * (start - 1); 
            } 
        } 
        return startIndex; 
    } 
} 



然后是业务层接口,举例AdminService.java 



//管理员service层接口 
package com.sy.service; 

import java.util.List; 

import com.sy.util.Page; 
import com.sy.vo.Admin; 

public interface AdminService extends BaseService{ 

    
    
//分页初始化 
    public void init(int pno); 
//分页实现 
    public Page getPage(); 
    
} 



实现类AdminServiceImpl.java 



//管理员service层实现类 
package com.sy.service.impl; 

import java.util.List; 

import com.sy.dao.impl.AdminDaoImpl; 
import com.sy.dao.impl.PageDaoImpl; 
import com.sy.service.AdminService; 
import com.sy.util.Page; 
import com.sy.vo.Admin; 

@SuppressWarnings("unchecked") 
public class AdminServiceImpl extends BaseServiceImpl implements AdminService { 

        . 

    public Page getPage() { 
        return Pdao.getPage(); 
    } 
    public void init(int pno) { 
        String tableName="Admin"; 
        Pdao.init(pno,tableName); 
    } 
} 


struts的action层AdminAction.java 



//管理员action实现类 
package com.sy.action; 

import java.util.List; 

import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import javax.servlet.http.HttpSession; 

import org.apache.struts.action.ActionForm; 
import org.apache.struts.action.ActionForward; 
import org.apache.struts.action.ActionMapping; 
import org.apache.struts.action.ActionMessage; 
import org.apache.struts.action.ActionMessages; 

import com.sy.form.AdminForm; 
import com.sy.form.LoginForm; 
import com.sy.service.AdminService; 
import com.sy.util.MD5; 
import com.sy.util.Page; 
import com.sy.vo.Admin; 
@SuppressWarnings("unchecked") 
public class AdminAction extends BaseAction { 

        . 
//查看管理员 
    public ActionForward listAdmins(ActionMapping mapping, ActionForm form, 
            HttpServletRequest request, HttpServletResponse response) { 
        AdminService as=(AdminService)super.getBean("AdminService"); 
           int pno = (new Integer(request.getParameter("pno"))).intValue(); 
           as.init(pno); 
           Page myPage = as.getPage(); 
           List myList = as.getPage().getList(); 
           request.setAttribute("myPage", myPage); 
           request.setAttribute("AdminList", myList); 
           return mapping.findForward("show"); 
           
    } 
} 


结构清晰,也很实用。 

页面lookAdmin.jsp 



<%@ page language="java" pageEncoding="UTF-8"%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> 
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> 
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %> 
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %> 
<html> 
    <head> 
        <meta http-equiv="Content-Language" content="zh-cn"> 
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
        <title>施杨SSH新闻发布</title> 
    </head> 
    <body> 
        <center> 
            <h3> 
                查看管理员 
            </h3> 
            <br> 
            <a href="./admin/addAdmin.jsp">添加管理员</a> 
            <br> 
            <a href="./NewsPage2.do?pno=1">查看新闻</a> 
            <br> 
            <table border="2" width="600"> 
                <tr> 
                    <td> 
                        用户名 
                    </td> 
                    <td> 
                        密码 
                    </td> 
                    <td> 
                        操作 
                    </td> 
                </tr> 
    <c:forEach items="${requestScope['AdminList']}" var="admin"> 
            <tr align="center"> 
              <td width="20%" height="10"><c:out value="${admin.aname}" /></td> 
              <td width="20%" height="10"><c:out value="${admin.apassword}" /></td> 
              <td> 
                <a href="./editAdmin.do?aid=<c:out value="${admin.aid}"/>">修改</a> 
                &nbsp;&nbsp; 
                <a href="./deleteAdmin.do?aid=<c:out value="${admin.aid}"/>" onclick="javascript:return confirm('您确定删除吗?')">删除</a> 
              </td> 
            </tr> 
    </c:forEach> 
    </table> 
    <table align="center" width="500"> 
    <tr> 
       <td align="center" colspan="10"> 
          <logic:present name="myPage"> 
            <html:link page="/AdminPage.do?pno=1">首页</html:link> 
          <logic:equal name="myPage" property="hasPreviousPage" value="false">上一页</logic:equal> 
          <logic:equal name="myPage" property="hasPreviousPage" value="true"> 
           <a href="./AdminPage.do?pno=<bean:write name="myPage" property="prePage"/>">上一页</a> 
      </logic:equal> 
           
           每页<bean:write name="myPage" property="pageSize"/>条记录 
           共<bean:write name="myPage" property="rowCount"/>条记录 
                当前第(<bean:write name="myPage" property="currentPage"/>/<bean:write name="myPage" property="totalPage"/>)页 
        <logic:equal name="myPage" property="hasNextPage" value="false">下一页</logic:equal> 
        <logic:equal name="myPage" property="hasNextPage" value="true"> 
         <a href="./AdminPage.do?pno=<bean:write name="myPage" property="nextPage"/>">下一页</a> 
        </logic:equal> 
           <a href="./AdminPage.do?pno=<bean:write name='myPage' property='totalPage'/>">末页</a> 
        </logic:present> 
      </td> 
      </tr> 
    </table> 
        </center> 
    </body> 
</html> 

 
----------------------------------------------------------------------

 

分享到:
评论

相关推荐

    很好的一个SSH分页小例子

    总的来说,SSH分页是一个涉及前端交互、后端处理和数据库查询的完整过程,需要协调多个组件协同工作。这个例子是一个很好的学习资源,可以帮助开发者掌握在Java Web应用中实现高效分页的关键技术。

    SSH分页,局部刷新

    这个例子中的`some_command`需要替换为你实际要执行的远程命令。 总的来说,SSH分页和局部刷新是提高SSH使用效率的重要技巧,它们可以帮助我们更好地管理和查看远程服务器的大量输出信息。通过熟练掌握`less`命令的...

    ssh分页例子

    在这个“ssh分页例子”中,我们将深入探讨SSH分页的工作原理以及如何在实际操作中使用它。 首先,SSH分页通常通过内置的分页器来实现,如`more`和`less`命令。当命令的输出过多,无法一次性完全显示在终端窗口时,...

    ssh增删改查+分页

    在这个“ssh增删改查+分页”的主题中,我们将深入探讨如何使用SSH2来实现数据库操作的基本功能,并结合分页技术进行数据展示。 首先,让我们关注SSH2中的"增"操作,即添加数据到数据库。这通常涉及编写一个Servlet...

    ssh2实现查询分页

    综上所述,SSH2实现的分页查询涉及了Struts2的Action、Service、页面展示,以及配置文件等多个方面。通过合理地组织代码和配置,可以轻松实现高效的分页功能。在实际项目中,你还可以根据需求对查询条件、排序方式...

    有关ssh一对一单向关联以及登陆的分页小例子

    SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。在本示例中,我们将深入探讨SSH的一对一单向...希望这个例子对你有所帮助,也欢迎你分享更多关于SSH使用和管理的经验与技巧。

    ssh分页代码[借鉴].pdf

    总结,SSH框架下的分页实现涉及了多个层次的协作:JSP页面处理用户界面和数据展示,JavaScript处理用户交互,Action层协调Model和View,Model层封装业务逻辑,DAO层处理数据库操作。了解这些知识点,可以帮助开发者...

    SSH2的jar包及的一个简单增删改查及分页和排序的例子

    在这个例子中,我们关注的是使用SSH2进行Java开发的相关内容,特别是通过jar包实现的简单数据库操作,包括增删改查、分页和排序。 SSH2在Java开发中的应用通常指的是Spring、Struts2和Hibernate这三个框架的组合,...

    ssh2分页代码

    Service层负责协调DAO层和Controller层的工作,它通常包含对多个DAO层方法的调用。 ```java public class MemberService { private MemberDao memberDao; public void setMemberDao(MemberDao memberDao) { ...

    SSH框架异步表格分页

    在这个例子中,Bootstrap样式用于美化表格,使其在不同设备上都能有良好的视觉效果。 实现异步表格分页的基本步骤: 1. **前端准备**:创建HTML结构,使用Bootstrap的表格类,以及监听分页事件的JavaScript代码。...

    ssh2整合例子

    在这个例子中,还包含了`mysql数据脚本`,这意味着项目包含了初始化数据库的脚本,通常用于创建表结构、填充测试数据等。这有助于快速设置开发环境。 **分页显示** 是Web应用中常见的功能,用于处理大量数据的展示...

    SSH2分页算法的实现

    在这个例子中,`Page`类被用来存储分页的相关信息,例如当前页数、每页记录数、总页数等。 ```java public class Page { private List list; // 要返回的某一页的记录列表 private int allRow; // 总记录数 ...

    SSH Extjs treeGrid conboxTree 分页实例

    最近在自学Extjs,做了一个小例子,后台使用SSH,前台是ExtJs,其中包含了很多内容,例如grid,TreeGrid,comboxTree,分页等内容,数据库采用的是mysql,文件中包含了数据库文件,导入mysql数据库即可,希望可以对初学者有一点...

    SSH三大框架整合小例子--图书管理系统

    SSH三大框架指的是Spring、Struts和Hibernate,它们是Java企业级开发中常用的技术栈,用于构建高效、可...随着你对每个框架理解的深入,可以尝试添加更多功能,如分页、缓存、国际化等,进一步提高系统性能和用户体验。

    Struts+Spring+Hibernate(CRUD操作案例)-分页查询-作者:llfzy

    前段时间时间当我在学习SSH框架技术的时候,在网上很难找到关于SSH的完整例子,比如最基本的CRUD操作和用的比较多的查询分页技术。为了让SSH初学者更清楚全面的学习,不再像我初学时候迷失方向。特花了2天时间做一个...

    Struts+Spring+Hibernate(CRUD操作案例)-分页查询

    前段时间时间当我在学习SSH框架技术的时候,在网上很难找到关于SSH的完整例子,比如最基本的CRUD操作和用的比较多的查询分页技术。为了让SSH初学者更清楚全面的学习,不再像我初学时候迷失方向。特花了2天时间做一个...

    SSH例子

    功能:使用dwr完成在客户端无刷新的分页排序等 &lt;br&gt;工具:MyEclipse 6.0,数据库SQLSERVER 2000 &lt;br&gt;数据在SQL文件夹下,Jobs是pubs数据库自带的 &lt;br&gt;主要的三个页面,emp是详细的,另两个是简单的复制修改,...

    ssh数据库基本操作封装

    在实际项目中,SSH框架的数据库操作封装还会涉及到错误处理、性能优化(如批处理、缓存机制)、分页查询、连接池配置等多个方面。理解并熟练掌握这些内容,对于开发高效、稳定的Java Web应用至关重要。

    ssh做的员工管理系统(小项目)

    例如,如果一个部门有多个员工,删除部门时可以设置级联删除所有关联的员工记录。 5. **分页显示**:在大量数据的场景下,为了提高用户体验,通常会采用分页显示数据。在这个系统中,用户可以查看一部分数据,然后...

    java web中的struts分页组件

    分页是将大量数据分为多个较小的、易于管理的部分,每次只加载一部分数据到客户端。这通常通过两个主要部分实现:前端(用户界面)和后端(服务器)的交互。 在Struts框架中,前端分页的实现通常涉及JSP页面。JSP...

Global site tag (gtag.js) - Google Analytics