后台数据库是mysql5.X,使用mysql的分页语句,如:select * from test limit 0,10;
Dao中分页取数据的方法:
public List<Users> getPage(int start,int pageRecord)
{
conn = DBUtil.getConn();
PreparedStatement pstmt = null;
ResultSet rs = null;
List<Users> userList = new ArrayList<Users>();
String sql = "select login_name,email,address,tel from users limit ?,?";
try
{
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, start);
pstmt.setInt(2, pageRecord);
rs = pstmt.executeQuery();
Users user = null;
while(rs.next())
{
user = new Users();
user.setLoginName(rs.getString("login_name"));
user.setEmail(rs.getString("email"));
user.setAddress(rs.getString("address"));
user.setTel(rs.getString("tel"));
userList.add(user);
}
} catch (SQLException e)
{
e.printStackTrace();
}
finally
{
DBUtil.close(rs);
DBUtil.close(pstmt);
DBUtil.close(conn);
}
return userList;
}
分页的action:
public class PageAction extends Action
{
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception
{
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
//当前页
String currentPageStr = request.getParameter("pageNo");
int currentPage=0;
//每页显示的记录数
int pageSize = 10;
try
{
currentPage =Integer.parseInt(currentPageStr);
}
catch(NumberFormatException e)
{
currentPage = 1;
}
//在数据库中从第几条开始
int start = (currentPage -1) * 10;
//在数据库中已分页的数据集合
List<Users> list = DaoFactory.getUsersDaoInstance().getPage(start, pageSize);
//所有记录的集合
List<Users> allRecordList = DaoFactory.getUsersDaoInstance().getAll();
//所有记录数
int allRecord = allRecordList.size();
//总页数
int totalPage = allRecord % pageSize==0?allRecord/pageSize : allRecord/pageSize + 1;
List<Users> l = new ArrayList<Users>();
Users user = null;
for(Users u : list)
{
user = new Users();
user.setLoginName(u.getLoginName());
user.setEmail(u.getEmail());
user.setTel(u.getTel());
user.setAddress(u.getAddress());
l.add(user);
}
//总记录数
request.getSession().setAttribute("allRecord", allRecord);
//总页数
request.getSession().setAttribute("totalPage", totalPage);
//当前页数
request.getSession().setAttribute("currentPage", currentPage);
request.getSession().setAttribute("list", l);
return mapping.findForward("success");
}
}
前台页面代码:
<table align="center" border="0">
<tr>
<td width="76%">
<font size=4>总共${allRecord}条记录 - 当前页${currentPage }/总页数${totalPage }:</font>
</td>
</tr>
<tr>
<c:if test="${currentPage<=1}">
首页
</c:if>
<c:if test="${currentPage>1}">
<a href="page.do?pageNo=1">首页</a>
</c:if>
<c:if test="${currentPage<totalPage}">
<a href="page.do?pageNo=${currentPage +1}"+>下一页</a>
</c:if>
<c:if test="${currentPage>=totalPage}">
下一页
</c:if>
<c:if test="${currentPage<=1}">
上一页
</c:if>
<c:if test="${currentPage>1}">
<a href="page.do?pageNo=${currentPage -1 }">上一页</a>
</c:if>
<c:if test="${currentPage>=totalPage}">
尾页
</c:if>
<c:if test="${currentPage<totalPage}">
<a href="page.do?pageNo=${totalPage}">尾页</a>
</c:if>
</tr>
</table>
<table border="2" align="center">
<tr>
<td>用户名</td>
<td>email</td>
<td>电话</td>
<td>地址</td>
</tr>
<c:forEach items="${list}" var="l">
<tr>
<td>${l.loginName}</td>
<td>${l.email }</td>
<td>${l.tel }</td>
<td>${l.address }</td>
</tr>
</c:forEach>
</table>
分享到:
相关推荐
本项目名为“jsp +struts 分页经典”,显然是一个利用这两种技术实现的分页展示数据的案例。下面我们将深入探讨JSP和Struts框架,以及它们在分页、查询和数据操作中的应用。 首先,JSP是Java平台上的动态网页技术,...
【hibernate+struts2分页代码】是关于如何在Java Web开发中结合Hibernate ORM框架和Struts2 MVC框架实现数据分页的功能。在Web应用程序中,分页是提高用户体验的重要手段,它允许用户逐步浏览大量数据,而无需一次性...
6. **编写JSP页面**:在JSP页面上,使用Struts2的标签库(如`s:iterator`和`s:url`)来遍历数据并构建分页链接。 7. **实现分页链接**:为每一页生成链接,通常会显示“上一页”、“下一页”和页码链接。点击这些...
总结,"jsp+sqlserver分页"项目涉及了数据库分页技术、Struts框架的使用、JavaBean组件以及JSP页面的构建。这些知识点对于理解Web开发中的数据交互和用户界面设计至关重要。通过这个项目,开发者可以学习到如何在...
1. **JDBC分页查询**:在处理大量数据时,一次性加载所有记录可能导致性能问题和用户体验下降。因此,我们通常使用JDBC实现分页查询,通过设置SQL的LIMIT或OFFSET子句(取决于数据库类型)来只获取当前页面的数据。...
【标题】"jsp+struts+spring+hibernate新闻系统"是一个基于Java技术栈的Web应用程序,它利用了SSH(Struts、Spring、Hibernate)框架的集成来构建一个功能完善的新闻发布与管理系统。SSH框架是Java领域中常用的MVC...
传统的网页设计只在一个JSP或者ASP页面中书写所有关于数据库操作的代码,那样做分页可能简单一点,但当把网站分层开发后,分页就比较困难了,下面是我做Spring2+Hibernate3+Struts2项目时设计的分页代码,...
【标题】:“Hibernate+jsp+Struts2开发的CRUD和分页代码”是指使用Java技术栈中的Hibernate对象关系映射框架、Struts2 MVC框架以及JSP(JavaServer Pages)进行基本的数据操作(创建、读取、更新、删除,简称CRUD)...
开发者可以通过阅读源码,了解如何在实际项目中集成JSP、Struts和Hibernate,以及如何实现分页功能和数据库操作。 总之,这个"JSP+Struts+Hibernate"的博客系统展示了传统的Java Web开发方式,虽然现代Web开发已...
hibernate+struts实现jsp增删改查分页! hibernate实现对数据库的操作,struts实现对表单的操作! 实现了分页功能! (注:本本项目中文会出现乱码,我还没有解决!附有数据库文件!)
在分页场景下,Struts控制器接收用户的分页请求,调用服务层方法,然后将结果传递给视图层进行展示。 4. **分页实现**:在SSH框架中,分页通常通过以下步骤实现: - 设计一个Page对象,包含当前页、每页记录数、总...
hibernate+struts实现jsp增删改以及分页功能! hibernate做数据操作,struts处理表单。 实现了分布功能。附数据库! (注:如果出现乱码,大家配置一下tomcat的编码方式与数据库的编码方式就行了!)
5. **前端展示**:前端接收到分页数据后,使用JavaScript或者JSP标签库(如DisplayTag)渲染页面,展示分页内容。用户交互部分,如页码链接的激活状态和禁用状态,以及“下一页”、“上一页”按钮的状态,也需要在...
**基于JSP+Struts2+Hibernate的个人博客系统** 在Web开发领域,构建一个功能完善的个人博客系统是一项常见的任务,而使用JSP、Struts2和Hibernate这三种技术的组合,可以创建出高效且易于维护的解决方案。下面将...
【基于JSP+Struts+JDBC的个人通讯录管理系统】是一个典型的Web应用程序,它结合了JavaServer Pages(JSP)、Struts框架和Java Database Connectivity(JDBC)技术,为用户提供了一个便捷、高效的个人通讯录管理平台...
1、添加struts2.1支持 2、修复没查到数据,组显示负数BUG V1.5版更新内容 1、修复HQL方式日期范围查询BUG 2、添加分组分页的功能 3、添加pageSize设置功能 V1.1版本更新内容 1、实现日期范围查询 V1.0版本 1、...
此外,还可以学习如何使用JSP或其他视图技术来呈现分页界面,以及如何处理用户交互事件,如点击“上一页”、“下一页”按钮。这样的实践将有助于提升Java Web开发技能,特别是对于使用SSH框架组合的开发者来说,这是...
本篇将介绍如何使用Struts和Hibernate框架来实现Web应用中的分页功能。 首先,Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它负责处理用户请求并控制应用程序的流程。而Hibernate则是一...
1. JSP页面:展示搜索结果和分面筛选选项。 2. Struts配置文件:定义Action类和请求映射。 3. Hibernate配置文件:配置数据库连接和实体映射。 4. Action类:处理用户请求,执行业务逻辑。 5. DAO(Data Access ...