`
gcz564539969
  • 浏览: 12097 次
文章分类
社区版块
存档分类
最新评论

Struts2+JDBC分页

 
阅读更多
编写web.xml文件,其代码如下:

<?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>

建一个数据库表,用于保存学员信息:

drop database if exists page;
create database page ;
use page;
create table student (
   stu_id integer auto_increment,
   stuName varchar(30) not null,
   address varchar(50) not null,
   stuPhone varchar(15)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');

 编写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 ;
  }
}

由于要对数据库中的学员信息进行封装,所以需要编写一个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层的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" mce_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}" mce_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}" mce_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>

编写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 ;
	}
}

配置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>



分享到:
评论

相关推荐

    Struts2+jdbc+mysq分页Demo

    Struts2+jdbc+mysq分页Demo

    Struts+JDBC实现分页

    Struts+JDBC实现分页 java 分页

    用Struts2+JDBC+Mysql写的增删改查,分页

    自己学习时候写的, 下载了注意添加Jar包就OK. 数据库很简单, 看User类就OK. 连数据库 自己修改一下DBConn类里面的 连接地址.

    struts2+jdbc实现增删改查及带条件的分页查询

    实现了struts2通过jdbc连接mysql数据库进行数据存储及从数据库中 查询出数据并显示到页面(jsp页面使用了struts2标签)上

    struts2增删改查,struts2分页查询

    struts2增删改查,struts2分页查询

    STRUTS +JDBC关于分页的问题

    sdfjsdfsafasdasdfasdfsadfsadfsdafsadfsadf

    struts2框架做的学生信息查询系统

    采用Struts2框架,完成数据库操作(增删改查),完成分页,模糊查询,

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

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

    【原创】struts+mysql+jsp 分页

    NULL 博文链接:https://zhouwenjun.iteye.com/blog/764640

    分页大全(含JDBC分页 struts分页)

    分页 含struts分页 jdbc分页 及标签的使用等

    JDBC+struts1模糊查询分页

    JDBC+struts1模糊查询分页以及增删改

    J2EE_求职应聘系统(struts+jdbc实现)

    用户可以在系统中查询预求职的职位,然后提交简历;人力资源部,登陆后可进行的操作有:发布应聘职位,能对应聘职位的人员要求...使用Struts提供的自定义标签库;使用组件技术实现文件上传、分页;有简单的数据库设计。)

    设计一个简单的网上名片管理系统,实现struts2增删改查等操作

    1.需要完成的任务 :基于Struts2+JDBC+DAO,设计一个简单的网上名片管理系统,实现名片的增、删、改、查等操作 (1) 户登录与注册  用户登录:登录时,如果用户名和密码正确,进入系统主页面;  用户注册:新...

    Struts2项目综合案例

    按地区统计是struts2+JDBC实现向下挖掘和向上统计功能。其中dataInsert.sql是建表、视图sql,存储过程是批量插入测试数据,具体注意事项请看readme.txt文件。本压缩包仅有源代码和配置文件,相关运行的jar包需自己调...

    J2EE三大框架_笔记_a

    2-JSP+JDBC_真分页(基于Oracle数据库分页)笔记 3-JSP+DAO和MVC+DAO(基于MySQL数据库分页)-v笔记 4-Struts入门笔记 005_Struts+DAO登陆 6-Struts标签-BEAN标签笔记 7-Struts标签 -LOGIC标签笔记 8-Struts标签- HTML...

    J2EE框架_笔记_b

    2-JSP+JDBC_真分页(基于Oracle数据库分页)笔记 3-JSP+DAO和MVC+DAO(基于MySQL数据库分页)-v笔记 4-Struts入门笔记 005_Struts+DAO登陆 6-Struts标签-BEAN标签笔记 7-Struts标签 -LOGIC标签笔记 8-Struts标签- HTML...

    J2EE框架_笔记_c

    2-JSP+JDBC_真分页(基于Oracle数据库分页)笔记 3-JSP+DAO和MVC+DAO(基于MySQL数据库分页)-v笔记 4-Struts入门笔记 005_Struts+DAO登陆 6-Struts标签-BEAN标签笔记 7-Struts标签 -LOGIC标签笔记 8-Struts标签- HTML...

    javaEE框架笔记,识货人下

    2-JSP+JDBC_真分页(基于Oracle数据库分页)笔记.pdf 20-22Hibernate_容器映射技术笔记.pdf 23-26Hibernate数据关联技术笔记.pdf 27-32Hibernate数据关联技术_1vs1应用案例_笔记.pdf 3-JSP+DAO和MVC+DAO(基于MySQL...

    (2.0版本)自己写的struts2+hibernate+spring实例

    主要是为了引入时间等字段,来试验一下struts2的时间标签是否好用.这次为了做成一个好点的实例.所以换掉了表结构.为歌词表.并附带2万首歌词的数据库.因为歌词插入数据太大.所以单另上传了.如果不需要这两万条数据的...

    Java 分页算法祥解

    1.Struts+JDBC分页算法 1.1 创建分页控制类(如果使用kevinb.jar可以省略本步) --创建接口Pageable.java --创建实现类PageableResultSet.java 使用以这个实现类来控制分页的基本信息和操作; --可以直接使用kevinb....

Global site tag (gtag.js) - Google Analytics