- 浏览: 754275 次
- 性别:
- 来自: 郑州
文章分类
- 全部博客 (396)
- JAVA (50)
- ORACLE (22)
- HIBERNATE (1)
- SPRING (26)
- STRUTS (4)
- OTHERS (0)
- MYSQL (11)
- Struts2 (16)
- JS (33)
- Tomcat (6)
- DWR (1)
- JQuery (26)
- JBoss (0)
- SQL SERVER (0)
- XML (10)
- 生活 (3)
- JSP (11)
- CSS (5)
- word (1)
- MyEclipse (7)
- JSTL (1)
- JEECMS (2)
- Freemarker (8)
- 页面特效 (1)
- EXT (2)
- Web前端 js库 (2)
- JSON http://www.json.org (3)
- 代码收集 (1)
- 电脑常识 (6)
- MD5加密 (0)
- Axis (0)
- Grails (1)
- 浏览器 (1)
- js调试工具 (1)
- WEB前端 (5)
- JDBC (2)
- PowerDesigner (1)
- OperaMasks (1)
- CMS (1)
- Java开源大全 (2)
- 分页 (28)
- Eclipse插件 (1)
- Proxool (1)
- Jad (1)
- Java反编译 (2)
- 报表 (6)
- JSON (14)
- FCKeditor (9)
- SVN (1)
- ACCESS (1)
- 正则表达式 (3)
- 数据库 (1)
- Flex (3)
- pinyin4j (2)
- IBATIS (3)
- probe (1)
- JSP & Servlet (1)
- 飞信 (0)
- AjaxSwing (0)
- AjaxSwing (0)
- Grid相关 (1)
- HTML (5)
- Guice (4)
- Warp framework (1)
- warp-persist (1)
- 服务器推送 (3)
- eclipse (1)
- JForum (5)
- 工具 (1)
- Python (1)
- Ruby (1)
- SVG (3)
- Joda-Time日期时间工具 (1)
- JDK (3)
- Pushlet (2)
- JSP & Servlet & FTP (1)
- FTP (6)
- 时间与效率 (4)
- 二维码 (1)
- 条码/二维码 (1)
最新评论
-
ctrlc:
你这是从web服务器上传到FTP服务器上的吧,能从用户电脑上上 ...
jsp 往 FTP 上传文件问题 -
annybz:
说的好抽象 为什么代码都有两遍。这个感觉没有第一篇 和第二篇 ...
Spring源代码解析(三):Spring JDBC -
annybz:
...
Spring源代码解析(一):IOC容器 -
jie_20:
你确定你有这样配置做过测试? 请不要转载一些自己没有测试的文档 ...
Spring2.0集成iReport报表技术概述 -
asd51731:
大哥,limit传-1时出错啊,怎么修改啊?
mysql limit 使用方法
在开发web程序时,从数据库中取 出来的数据一般都要分页显示在页面上,分页显示的方法非常多,有人写自定义标签,用自己写的标签进行分页显示,我个人觉得这是一种比较好的方法。下面是我 用Struts2做的一个分页显示实例,基本的思路是:把数据库表中的每一行数据封装成一个对象,用一个返回类型为List的方法返回这些对象,接着在 Struts2的action里面定义一个List属性,用这个List来接收从数据库中查询出来并进行了封装的那些对象,然后通过Struts2的标签 遍历List里的每个对象,并把这些对象里所包含的属性取出来展现在页面上。下面是具体的步骤: 所用工具:JDK1.6 + MyEclipse6.0 + Tomcat6.0 + MySQL5.0 + struts 2.0.11 1、新建一个web工程,导入struts2中相应的jar包和mysql数据驱动包。 2、编写web.xml文件,其代码如下: |
<script type="text/javascript"><!--
google_ad_client = "pub-1832179689702023";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
//2007-01-10: 336_280
google_ad_channel = "7111701428";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "3D81EE";
//--></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script><script>google_protectAndRun("ads_core.google_render_ad", google_handleError, google_render_ad);</script>
|
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
3、建一个数据库表,用于保存学员信息:
drop database if exists page; create database page ; use page; create table student ( stu_id integer auto_increment, stuName varchar(255) not null, address varchar(255) not null, stuPhone varchar(255)not null, primary key(stu_id) ); insert into student(stuName,address,stuPhone) values('杨华林','长沙','13787825190'); insert into student(stuName,address,stuPhone) values('李明清','天津','13787525190'); insert into student(stuName,address,stuPhone) values('李小华','大连','13788451190'); insert into student(stuName,address,stuPhone) values('郑小明','苏州','13787052188'); insert into student(stuName,address,stuPhone) values('杨一新','西安','13787851190'); insert into student(stuName,address,stuPhone) values('王新任','广州','13787056460'); insert into student(stuName,address,stuPhone) values('谢小华','深圳','13787075550'); insert into student(stuName,address,stuPhone) values('王建明','厦门','13788853690'); insert into student(stuName,address,stuPhone) values('秦一生','北京','13788689236'); insert into student(stuName,address,stuPhone) values('田翠林','杭州','13787655150'); insert into student(stuName,address,stuPhone) values('陈小明','广州','13787623668');
4、编写PageDAO类,该类用于从数据库中取出所有的学员信息,把这些学员信息封装成一个Student
对象并将
其放入List中。
package org.hnylj.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; public class PageDAO { private Connection conn ; private PreparedStatement pstmt ; private ResultSet rs ; private static final String DRIVER = "com.mysql.jdbc.Driver" ; private static final String URL = "jdbc:mysql://localhost:3306/page" ; private static final String USERNAME = "root" ; private static final String PASSWORD = "123" ; private Student student ; //数据库连接 public synchronized Connection getConnection () { try { Class.forName (DRIVER) ; conn = DriverManager.getConnection (URL,USERNAME,PASSWORD) ; } catch (ClassNotFoundException e) { e.printStackTrace () ; return null ; } catch (SQLException e) { e.printStackTrace () ; return null ; } return conn ; } //分页查询 public List<Student> queryByPage (int pageSize, int pageNow) { List<Student> list = new ArrayList<Student> () ; try { if (this.getConnection()!=null && pageSize>0 && pageNow>0) { pstmt = this.getConnection().prepareStatement( "select * from student order by stu_id limit "+(pageNow*pageSize-pageSize)+","+pageSize ); rs = pstmt.executeQuery () ; while (rs.next()) { student = new Student () ; student.setStu_id (rs.getInt(1)) ; student.setStuName (rs.getString(2)) ; student.setAddress (rs.getString(3)) ; student.setStuPhone (rs.getString(4)) ; list.add (student) ; } } } catch(SQLException e) { e.printStackTrace() ; } return list ; } }
5、由于要对数据库中的学员信息进行封装,所以需要编写一个JavaBean,即Student类:
package org.hnylj.util; public class Student { private int stu_id ; private String stuName ; private String address ; private String stuPhone ; public Student () { } public int getStu_id () { return stu_id ; } public void setStu_id (int stu_id) { this.stu_id = stu_id ; } public String getStuName () { return stuName ; } public void setStuName (String stuName) { this.stuName = stuName ; } public String getAddress () { return address ; } public void setAddress (String address) { this.address = address ; } public String getStuPhone () { return stuPhone ; } public void setStuPhone (String stuPhone) { this.stuPhone = stuPhone ; } }
至此底层的代码就写好了。接下来我们需要编写web层的代码。
6、编写web层的jsp文件,分别有index.jsp,show.jsp和error.jsp,其代码分 别如下:
<%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Struts2实现分页显示</title> </head> <body> <div align="center"> <s:a href="show.action">进入查看学员列表</s:a> </div> </body> </html>
<%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Struts2实现分页显示</title> </head> <body> <div align="center"> <table border="1"> <tr> <th>学号</th> <th>姓名</th> <th>地址</th> <th>电话</th> </tr> <s:iterator value="students"> <tr> <td><s:property value="stu_id"/></td> <td><s:property value="stuName"/></td> <td><s:property value="address"/></td> <td><s:property value="stuPhone"/></td> </tr> </s:iterator> </table> <s:url id="url_pre" value="show.action"> <s:param name="pageNow" value="pageNow-1"></s:param> </s:url> <s:url id="url_next" value="show.action"> <s:param name="pageNow" value="pageNow+1"></s:param> </s:url> <s:a href="%{url_pre}">上一页</s:a> <s:iterator value="students" status="status"> <s:url id="url" value="show.action"> <s:param name="pageNow" value="pageNow"/> </s:url> </s:iterator> <s:a href="%{url_next}">下一页</s:a> </div> </body> </html>
<%@ page language="java" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>发生错误</title> </head> <body> 业务逻辑发生异常,请稍候再试。。。。。。 </body> </html>
7、编写struts2的action来拦截用户的请求:
package org.hnylj.web; import java.util.List; import org.hnylj.util.PageDAO; import org.hnylj.util.Student; import com.opensymphony.xwork2.ActionSupport; public class ShowAction extends ActionSupport { private List<Student> students ; private int pageNow = 1 ; //初始化为1,默认从第一页开始显示 private int pageSize = 5 ; //每页显示5条记录 private PageDAO pageDAO = new PageDAO () ; public List<Student> getStudents() { return students; } public void setStudents(List<Student> students) { this.students = students; } public int getPageNow() { return pageNow; } public void setPageNow(int pageNow) { this.pageNow = pageNow; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public String execute() throws Exception { students = pageDAO.queryByPage(pageSize, pageNow) ; return SUCCESS ; } }
8、配置struts.xml文件,即action和响应结果页面之间的映射:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="struts2" namespace="/" extends="struts-default"> <action name="show" class="org.hnylj.web.ShowAction"> <result name="success">show.jsp</result> <result name="error">error.jsp</result> </action> </package> </struts>
至此所有的工作已经完成,接下来部署整个web工程到tomcat的webapps目录下,启动tomcat,在浏览器地址栏输入 http://localhost:8080/项目名称/index.jsp,回车即可看到一个链接,点击该链接即可看到一个可以进行上一页和下一页的学 员信息列表。
相关推荐
用Struts2+mysql实现的简单信息录入,分页查询
综上所述,使用Struts2和JSP实现分页主要涉及以下几个步骤: 1. 创建Action类,定义分页相关属性并实现获取分页数据的方法。 2. 在Struts2配置文件中配置Action。 3. 在JSP页面上使用Struts2标签库生成分页链接。 ...
### Struts2 实现分页及 `<s:bean>` 标签详解 #### 一、Struts2 分页概述 在 Java Web 开发中,为了提高用户体验并减轻服务器负担,通常采用分页技术来展示数据。Struts2 框架提供了一套强大的工具和标签库来帮助...
根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要探讨的是如何在Struts2与Hibernate框架结合下实现分页功能。接下来将详细解析Struts2与Hibernate如何协作完成这一任务。 ### Struts2与Hibernate...
通过自定义分页标签,Struts2开发者能够轻松实现定制化分页,并保持代码的整洁和可维护性。这种方式避免了在多个JSP页面中重复编写分页逻辑,提高了代码复用性,同时降低了出错的可能性。 总之,本资源提供的Struts...
总结来说,实现“jQuery Java Struts2 实现分页”涉及到前后端的协同工作:前端使用jQuery和其分页插件处理用户交互,样式通过CSS自定义;后端使用Java和Struts2框架处理分页逻辑,与数据库进行交互,返回所需数据。...
本教程将深入讲解如何在Struts1.2框架中实现分页功能。 一、理解分页原理 分页的基本思想是将数据库中的数据分割成若干个部分,每次只加载一部分到前端展示,用户可以通过点击页码或导航按钮来切换不同的数据页。...
下面是我用Struts2做的一个分页显示实例,基本的思路是:把数据库表中的每一行数据封装成一个对象,用一个返回类型为List的方法返回这些对象,接着在Struts2的action里面定义一个List属性,用这个List来接收从数据库...
本实践项目旨在展示如何在Struts2中实现分页功能,适用于初学者学习和提升技能。 首先,我们来了解分页的基本原理。分页是将大量数据分成若干小部分,每次只加载一部分到页面上,用户可以通过导航按钮来浏览其他...
你需要创建一个Action类,比如`PaginationAction`,在这个类中实现分页逻辑。Action类通常包含获取数据的方法,如`loadData`,该方法将根据当前页码和每页大小计算SQL的LIMIT子句,并调用`DbPool`执行查询。 4. **...
下面我们将深入探讨如何在Struts框架下实现分页功能。 首先,我们需要理解分页的基本概念。分页是指将一个大数据集合分割成多个小部分,每次只显示一部分,用户可以通过翻页来查看其他部分。在Web应用中,这通常...
在这个"Struts2SpringHibernate实现简单的添加,分页显示功能例子"中,开发者通过整合这三大框架,实现了基本的数据添加功能以及数据的分页显示。以下是对这个例子中的关键知识点的详细解释: 1. **Struts2**:作为...
3. **.struts-config.xml配置文件**:在实现分页功能时,需要在项目的配置文件`struts-config.xml`中定义Action以及相关的ActionForm和ActionForward。ActionForm用于封装用户请求的数据,ActionForward则定义了请求...
在这个基于Struts2的自定义分页标签的实践中,我们将深入探讨如何创建、配置和使用自定义标签来实现数据的分页展示,同时与Oracle数据库进行交互。 首先,理解分页的基本概念至关重要。分页是将大量数据分成小块,...
总的来说,Struts2结合MySQL实现分页显示,涉及到的主要知识点包括:Struts2框架的工作原理、Action的设计与实现、数据库查询(特别是分页查询)、前端页面的渲染以及用户交互设计。通过对这些技术的熟练掌握,...
首先,我们需要在Struts2的Action类中实现分页逻辑。Action类通常包含获取总记录数、当前页数、每页显示记录数等属性,以及对应的方法来计算总页数和获取当前页的数据。这些方法应连接到数据库,执行相应的SQL查询,...
struts实现数据库添删改查,以及分页 ArrayList<Users> list; UserService service; Users user; Pager page=new Pager(); public Pager getPage() { return page; } public void setPage(Pager page) { ...
在这个项目中,"struts+hibernate做的分页显示"主要是利用这两者来实现数据的分页展示,提升用户体验,降低服务器压力。 首先,Struts是一个基于MVC设计模式的Java Web框架,它简化了开发过程,提供了处理HTTP请求...
本文将详细介绍如何在Struts2中实现分页标签,并提供一个简洁易懂的项目示例。 1. **Struts2分页概念**: 分页是将大量数据分割成若干小块,每次只加载一部分数据到页面上,使得用户可以逐页浏览,减轻服务器压力...