用struts2怎么写的分页 用struts2怎么写的分页,谢谢高手解答 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 DBConnection.java类package com.net.dao;import java.sql.*;public class DBConnection { private Connection cn; public DBConnection(Connection cn) { super(); this.cn = cn; } public DBConnection() { super(); // TODO Auto-generated constructor stub } private Connection getConnection(){ try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); cn= DriverManager.getConnection("jdbc:sqlserver://127.0.0.1;databaseName=db_book","sa","123"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return cn; } public ResultSet getResultSet(String sql,Object args[]){ try { PreparedStatement ps=this.getConnection().prepareStatement(sql); if(args!=null){ for(int i=0;i<args.length;i++){ ps.setObject(i+1,args[i]); } } return ps.executeQuery(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } return null; }}DBcommend.java类package com.net.dao;import java.sql.Connection;import java.sql.ResultSet;import java.util.ArrayList;import java.util.List;import com.net.Entity.books;public class DBcommend { public List getlist(int pid){ List list=new ArrayList(); DBConnection db=new DBConnection(); books book=null; try { int cnt=(pid-1)*books.pagetol; String sql="select top (?) * from book where bookid not in(select top (?) bookid from book order by bookid desc) order by bookid desc"; ResultSet rs=db.getResultSet(sql, new Object[]{books.pagetol,cnt}); while (rs.next()) { book=new books(); book.setBookid(rs.getInt("bookid")); book.setBookname(rs.getString("bookname")); book.setOuthor(rs.getString("bookouthor")); list.add(book); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } return list; } public int getcount(){ int count=0; DBConnection db=new DBConnection(); try { String sql="select count(*) from book"; ResultSet rs=db.getResultSet(sql,null); rs.next(); count=rs.getInt(1); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } return count; }} 数据库字段books.java类package com.net.Entity;public class books { public static final int pagetol=5; private int bookid; private String bookname; private String outhor; public int getBookid() { return bookid; } public void setBookid(int bookid) { this.bookid = bookid; } public String getBookname() { return bookname; } public void setBookname(String bookname) { this.bookname = bookname; } public String getOuthor() { return outhor; } public void setOuthor(String outhor) { this.outhor = outhor; }}Pageinfo.java 分页属性package com.net.Entity;public class Pageinfo { private int pid; private int tallPage; private int count ; private String up; private String down; public int getPid() { return pid; } public void setPid(int pid) { this.pid = pid; } public int getTallPage() { return tallPage; } public void setTallPage(int tallPage) { this.tallPage = tallPage; } public int getCount() { return count; } public void setCount(int count) { this.count = count; } public String getUp() { return up; } public void setUp(String up) { this.up = up; } public String getDown() { return down; } public void setDown(String down) { this.down = down; } }BookAction.java (Action)类/* * Generated by MyEclipse Struts * Template path: templates/java/JavaClass.vtl */package com.yourcompany.struts.action;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import com.net.Entity.Pageinfo;import com.net.Entity.books;import com.net.dao.DBConnection;import com.net.dao.DBcommend;public class BookAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String pid1=request.getParameter("id"); if(pid1==null || pid1.equals("")){ pid1="1"; } int pid=Integer.parseInt(pid1); DBcommend db=new DBcommend(); Pageinfo page=new Pageinfo(); List list=db.getlist(pid); int count=db.getcount(); System.out.println(count); int tollPage=(int)Math.ceil(count*1.0/books.pagetol); page.setCount(count); page.setTallPage(tollPage); page.setPid(pid); String up="javascript:;"; String down="javascript:;"; if(pid==1 && tollPage>1){ down="book.do?id="+(pid+1); }else if(tollPage>1 && pid==tollPage){ up="book.do?id="+(pid-1); }else if(pid>1 && pid<tollPage){ up="book.do?id="+(pid-1); down="book.do?id="+(pid+1); } page.setUp(up); page.setDown(down); request.setAttribute("list", list); request.setAttribute("page", page); return mapping.findForward("index"); }}struts-config.xml 配置文件<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config> <data-sources /> <form-beans /> <global-exceptions /> <global-forwards /> <action-mappings > <action path="/book" type="com.yourcompany.struts.action.BookAction"> <forward name="index" path="/index.jsp" /> </action> </action-mappings> <message-resources parameter="com.yourcompany.struts.ApplicationResources" /></struts-config>index.jsp jsp页面<%@ page language="java" import="java.util.*" pageEncoding="GBK"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><html> <head> <title>My JSP 'index.jsp' starting page</title> </head> <body> <table border="1"> <tr> <td>序列</td> <td>书名</td> <td>作者</td> </tr> <c:forEach items="${requestScope.list}" var="li"> <tr> <td>${li.bookid }</td> <td>${li.bookname }</td> <td>${li.outhor }</td> </tr> </c:forEach> </table> <a href="book.do">首页</a> <a href="${requestScope.page.up}">上一页</a> <a href="${requestScope.page.down }">下一页</a> <a href="book.do?id=${requestScope.page.tallPage}">尾页</a> 当前页${requestScope.page.pid }/${requestScope.page.tallPage } 共有记录 ${requestScope.page.count } 条 </body></html>接复制 数据库 数据库名:db_book; 表名:book; 字段1 :bookid; 字段2:bookname; 字段3:outhor;以上是分页全部代码 直接复制 加分吧亲手帮你敲的? 额 分页?这个不是要用到数据库吗?为什么用structs实现分页?不理解~ 请高手告诉下啊 分页貌似是数据库的事情吧。。关 struts什么事啊。。数据库查询出了就直接展现在jsp中不就好了。。 不好意思啊,分页应该可以用struts标签吧 用标签的话页面加载就会减少,减少缓冲等待时间。用Struts标签的话,大部分只要写入配置文件进行配置就好了吧?也能增加可复用性。 分页的核心在于sql语句,三层嵌套查询方能完成 可以在sturuts2.0中写一个Dao用于操作数据库,在专门用sql语句写一个分写算法就行了分页SQL语句:比如:第三页的数据:select top 10 * from 表名 where id not in (select top 30 * from 表名 order by id desc) 分页的话最好用hibernate呀。 struts2只要传2个参数就行了 一个 起始 start 一个一页最多显示多少 max 分页的话传个最大页出来...然后判断一下当前页...然后在适当的显示页的下标就好了么...Hibernate把数据取出来设置firstResult和maxResult就好了吧... JSP 点击按钮,增加新单元格,求指教。 Java 调用存储过程时是否支持事务 基础问题 急!!asp中表单中option的value 怎么接受jsp返回的动态值! 手机中.wml文件,如何转换为中文? 关于有框架的jsp页面中的post请求问题,烦各位大侠帮一把 求救 关于servlet的问题 怎样实现点击率要防止同一页面刷新时不增加点击率?? 关于tomcat web站点问题?(在线等待) 如何在JSP页面获取打开页面计算机登录的用户名 spring+ibatis集成的applicationContext配置
import java.sql.*;
public class DBConnection {
private Connection cn;
public DBConnection(Connection cn) {
super();
this.cn = cn;
}
public DBConnection() {
super();
// TODO Auto-generated constructor stub
}
private Connection getConnection(){
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
cn= DriverManager.getConnection("jdbc:sqlserver://127.0.0.1;databaseName=db_book","sa","123");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return cn;
}
public ResultSet getResultSet(String sql,Object args[]){
try {
PreparedStatement ps=this.getConnection().prepareStatement(sql);
if(args!=null){
for(int i=0;i<args.length;i++){
ps.setObject(i+1,args[i]);
}
}
return ps.executeQuery();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return null;
}
}
DBcommend.java类package com.net.dao;import java.sql.Connection;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;import com.net.Entity.books;public class DBcommend { public List getlist(int pid){
List list=new ArrayList();
DBConnection db=new DBConnection();
books book=null;
try {
int cnt=(pid-1)*books.pagetol;
String sql="select top (?) * from book where bookid not in(select top (?) bookid from book order by bookid desc) order by bookid desc";
ResultSet rs=db.getResultSet(sql, new Object[]{books.pagetol,cnt});
while (rs.next()) {
book=new books();
book.setBookid(rs.getInt("bookid"));
book.setBookname(rs.getString("bookname"));
book.setOuthor(rs.getString("bookouthor"));
list.add(book);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return list;
}
public int getcount(){
int count=0;
DBConnection db=new DBConnection();
try {
String sql="select count(*) from book";
ResultSet rs=db.getResultSet(sql,null);
rs.next();
count=rs.getInt(1);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return count;
}
}
数据库字段
books.java类package com.net.Entity;public class books {
public static final int pagetol=5;
private int bookid;
private String bookname;
private String outhor;
public int getBookid() {
return bookid;
}
public void setBookid(int bookid) {
this.bookid = bookid;
}
public String getBookname() {
return bookname;
}
public void setBookname(String bookname) {
this.bookname = bookname;
}
public String getOuthor() {
return outhor;
}
public void setOuthor(String outhor) {
this.outhor = outhor;
}}
Pageinfo.java 分页属性package com.net.Entity;public class Pageinfo {
private int pid;
private int tallPage;
private int count ;
private String up;
private String down;
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public int getTallPage() {
return tallPage;
}
public void setTallPage(int tallPage) {
this.tallPage = tallPage;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public String getUp() {
return up;
}
public void setUp(String up) {
this.up = up;
}
public String getDown() {
return down;
}
public void setDown(String down) {
this.down = down;
}
}
BookAction.java (Action)类
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.yourcompany.struts.action;import java.util.List;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;import com.net.Entity.Pageinfo;
import com.net.Entity.books;
import com.net.dao.DBConnection;
import com.net.dao.DBcommend;
public class BookAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String pid1=request.getParameter("id");
if(pid1==null || pid1.equals("")){
pid1="1";
}
int pid=Integer.parseInt(pid1);
DBcommend db=new DBcommend();
Pageinfo page=new Pageinfo();
List list=db.getlist(pid);
int count=db.getcount();
System.out.println(count);
int tollPage=(int)Math.ceil(count*1.0/books.pagetol);
page.setCount(count);
page.setTallPage(tollPage);
page.setPid(pid);
String up="javascript:;";
String down="javascript:;";
if(pid==1 && tollPage>1){
down="book.do?id="+(pid+1);
}else if(tollPage>1 && pid==tollPage){
up="book.do?id="+(pid-1);
}else if(pid>1 && pid<tollPage){
up="book.do?id="+(pid-1);
down="book.do?id="+(pid+1);
}
page.setUp(up);
page.setDown(down);
request.setAttribute("list", list);
request.setAttribute("page", page);
return mapping.findForward("index");
}
}struts-config.xml 配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config>
<data-sources />
<form-beans />
<global-exceptions />
<global-forwards />
<action-mappings >
<action path="/book" type="com.yourcompany.struts.action.BookAction">
<forward name="index" path="/index.jsp" />
</action> </action-mappings> <message-resources parameter="com.yourcompany.struts.ApplicationResources" />
</struts-config>
index.jsp jsp页面<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>My JSP 'index.jsp' starting page</title> </head>
<body>
<table border="1">
<tr>
<td>序列</td>
<td>书名</td>
<td>作者</td>
</tr>
<c:forEach items="${requestScope.list}" var="li">
<tr>
<td>${li.bookid }</td>
<td>${li.bookname }</td>
<td>${li.outhor }</td>
</tr>
</c:forEach>
</table>
<a href="book.do">首页</a>
<a href="${requestScope.page.up}">上一页</a>
<a href="${requestScope.page.down }">下一页</a>
<a href="book.do?id=${requestScope.page.tallPage}">尾页</a>
当前页${requestScope.page.pid }/${requestScope.page.tallPage } 共有记录 ${requestScope.page.count } 条
</body>
</html>
接复制 数据库
数据库名:db_book;
表名:book;
字段1 :bookid;
字段2:bookname;
字段3:outhor;以上是分页全部代码 直接复制 加分吧亲手帮你敲的?
请高手告诉下啊
比如:第三页的数据:
select top 10 * from 表名 where id not in (select top 30 * from 表名 order by id desc)
Hibernate把数据取出来设置firstResult和maxResult就好了吧...