一、struts-config.xml配置,主要是配数据库,这里用access。
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources>
<data-source key="dataSource" type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="driverClassName" value="sun.jdbc.odbc.JdbcOdbcDriver" />
<set-property property="url" value="jdbc:odbc:page" />
<set-property property="username" value="admin" />
<set-property property="password" value="" />
<set-property property="maxActive" value="20" />
<set-property property="maxWait" value="5000" />
<set-property property="defaultAutoCommit" value="true" />
<set-property property="defaultReadOnly" value="false" />
<set-property property="validationQuery" value="SELECT 1" />
<set-property property="removeAbandoned" value="true" />
<set-property property="removeAbandonedTimeout" value="120" />
<set-property property="encoding" value="false" />
</data-source>
</data-sources>
<form-beans>
</form-beans>
<global-forwards>
</global-forwards>
<action-mappings>
<action path="/page" type="page.DataSourceAction" scope="request">
<forward name="success" path="/pagetest.jsp"/>
</action>
</action-mappings>
<controller>
</controller>
</struts-config>
二、Action类
用 page.do?start=1 来显示第一个页面
参数说明:
list:信息列表
start:开始位置
page:每页显示的信息数目
pages: 总页数
previous:上页开始位置
next:下页开始位置
package page;
import org.apache.struts.action.*;
import javax.servlet.http.*;
import java.util.*;
import javax.sql.*;
import java.sql.*;
import bean.*;
public class DataSourceAction extends Action {
public DataSourceAction(){}
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
try{
DataSource ds=this.getDataSource(request,"dataSource");
Connection con = ds.getConnection();
Statement stmt = con.createStatement();
ResultSet resultSet = stmt.executeQuery("select count(*) from book" );
resultSet.next();
int data_num=resultSet.getInt(1);
int start=1;
int page = 4; //每页的记录数。
int pages=data_num/page;
if(data_num%page!=0)
pages++;
if(request.getParameter("start")!=null)
start = Integer.parseInt(request.getParameter("start"));
if(request.getParameter("go")!=null){
int go = Integer.parseInt(request.getParameter("go"));
if(go<=1)
start=1;
else if(go>pages)
start=(pages-1)*page+1;
else
start=(go-1)*page+1;
}
String sql = "SELECT * FROM book where id>="+start+" and id<"+(start+page);
resultSet = stmt.executeQuery(sql);
ArrayList list = new java.util.ArrayList();
while(resultSet.next())
{
int id=resultSet.getInt("id");
String name = resultSet.getString("name");
String author = resultSet.getString("author");
String price = resultSet.getString("price");
System.out.println("开始数据封装:name="+name+"author="+author+"price="+price);
Book book= new Book(id,name,author,price);
list.add(book);
}
con.close();
request.setAttribute("pages",new Integer(pages));
request.setAttribute("list",list);
//request.setAttribute("start", new Integer(start));
request.setAttribute("page", new Integer(page));
// if there is a previous page, set the previous variable
int previous = start-page;
if ( previous>=0 ){
request.setAttribute("previous", new Integer(previous));
System.out.println ("previous:" + previous);
}
// if there is a next page, set the next variable
int next = start+page;
if ( next<=data_num ){
request.setAttribute("next", new Integer(next));
System.out.println ("next:" + next);
}
}catch(SQLException e){
e.printStackTrace();
System.out.println("数据库连接出现异常");
}
return (mapping.findForward("success"));
}
}
三、bean类Book.java
package bean;
import java.sql.*;
import java.util.ArrayList;
public class Book {
int id;
private String bookname; //书名
private String author; //作者
private String price; //价格
public Book(int id,String name,String author,String price){
this.id=id;
this.bookname=name;
this.author=author;
this.price=price;
}
public int getId(){
return id;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getBookname() {
return bookname;
}
public void setBookname(String bookname) {
this.bookname = bookname;
}
public String getPrice(){
return this.price;
}
public void setPrice(String price){
this.price=price;
}
}
四、分页的jsp页面pagetest.jsp,用了jstl中的c标记。
<%@ page contentType="text/html; charset=gb2312" language="java"%>
<%@ page import="java.util.*" %>
<%@ page import="bean.*" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>
<logic:iterate id="book" name="list" type="bean.Book">
<br><html:link
paramId="id" paramName="book" paramProperty="id"
page="/messagedetail.do">
<bean:write name="book" property="bookname" />
</html:link>
</logic:iterate>
<form action="/TestPage/page.do">
<logic:present name="previous">
<html:link
paramId="start" paramName="previous"
page="/page.do">
上一页
</html:link>
</logic:present>
<logic:present name="next">
<html:link
paramId="start" paramName="next"
page="/page.do">
下一页
</html:link>
</logic:present>
每页<c:out value="${page}"/>条记录,共<c:out value="${pages}"/>页 跳到<input type="text" name="go" size="3" maxlength="30" >
<input type="submit" value="go" >
</form>
分享到:
相关推荐
struts分页实例 struts分页实例
struts2分页实例,实用哦,struts2分页实例,实用哦,
struts分页实例,struts分页实例,struts分页实例,struts分页实例,struts分页实例,struts分页实例,struts分页实例,struts分页实例,
struts 2 分页 亲测实例,用eclipse开发,mysql 导入语句 sql
使用MSSQL2000,下面是表的脚本 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Student]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[Student] GO <br>...
下面是我用Struts2做的一个分页显示实例,基本的思路是:把数据库表中的每一行数据封装成一个对象,用一个返回类型为List的方法返回这些对象,接着在Struts2的action里面定义一个List属性,用这个List来接收从数据库...
struts+hibernate 分页实例
JSP JDBC WEB STRUTS 分页综合实例8
JSP JDBC WEB STRUTS 分页综合实例2
JSP JDBC WEB STRUTS 分页综合实例6
JSP JDBC WEB STRUTS 分页综合实例7
JSP JDBC WEB STRUTS 分页综合实例1
JSP JDBC WEB STRUTS 分页综合实例5
JSP JDBC WEB STRUTS 分页综合实例4
JSP JDBC WEB STRUTS 分页综合实例3
本人用struts+hibernate写的分页,有详细的注解,方便新手学习,在jsp中实现首页下一页上一页末页功能.index.jsp控制showlist.jsp页面中每页显示的信息条数,本实例在xp+tomcat5.5验证通过.数据库使用的sql2000中的pubs...
Struts2分页 很好的实例手把手教你完成
struts分页 我的分页比较简单,没有那么复杂,还是先实现再优化丰富吧。网上这方面的例子很多,但是详细的并不多。我打算 整理一下我的实现方案,并且接合Struts2的标签实现分页。提供相关完整代码。望高手指教...
一个完整的Struts/hiberante实例,包含SQL Serve 2000数据库脚本,易懂,分页代码的实现