转自:http://blog.163.com/dufeng_007@126/blog/static/1032169862009270591156/
思路:
当我们在后台操作,添加文章或视频或图片……时,在你想让它分页的地方加上分页符(当然这个
符号你可以随便用,比如:&&&&&&&&、#########、@@@@@@@@@@,只要它不会在文章要正常显示的地方出现就行了。)
1.从后台录入数据时,我们要手动进行添加分页符
2.从数据库中取出新闻内容(带分页符的内容)
3.通过String类中的indexOf方法进行定位(确定从哪取,到哪结束),通过String类中的subString方
法形成新的字符串,并将新形成的字符串通过List集合的add(int index(键), E element(键值))方
法放入到List集合中。
4.jsp页面中
在jsp页面中建立List集合的对象,通过E get(int index)返回列表中指定位置的元素,其中index参
数与3.中add方法中的add相同,取出的是add中index对应的element(键值)值。
一般的页面分页都是取出一共几页,当前页。所以我们可以取List集合的长度(总页数=集合长度+1)
下面是一个简单的例子:
import java.util.ArrayList;
import java.util.List;
import com.db.db;
import com.sun.rowset.CachedRowSetImpl;
public class SQL{
private List list;
private String bh="";
private String mc="";
public String getBh() {
return bh;
}
public String getMc() {
return mc;
}
public List getList() {//定义一个返回List集合的方法
// TODO Auto-generated method stub
String nr="";
int leng=0;
list=new ArrayList();//创建集合对象
try{
CachedRowSetImpl crs=new CachedRowSetImpl();
db db1=new db();//连接数据库的类
crs=db1.dbquery("select * from T_NRFY where bh='001'","1999");
if(crs.next()){
mc=new String((new String(crs.getString("nr")+"").trim()));
//取出数据库中的内容
int a=0;
int b=0;
int page=1;//List集合的“键”从1开始
while((leng=mc.indexOf("@@@@@@@@@@",a+5))!=-1){
//分页符使用的是@@@@@@@@@@,通过indexOf方法进行定位,第2个参数加5是
//为防止死循环
nr=mc.substring(a+10,leng);//因为设置的分页符是10个“@”,所以这里用a+10
//返回一个新字符串,它是此字符串的一个子字符串。
a=leng;
list.add(page,nr);
//将形成的键(page)与键值(新的字符串)放入到List集合中
page++;
}
}
else{
nr="对不起,不存在!!!";
}
}catch(Exception e){
System.out.println(e.toString());
}
return list;
}
}
jsp页面中
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<jsp:useBean id="sql" class="com.work.SQL" /> 类的路径
<%
List list=sql.getList();
ynr=list.get(1) ; 通过List集合中的get方法取值
%>
<html>
<head>
<title>分页测试</title>
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%=ynr%>
</body>
</html>
注:1.可以根据自己的分页方法,将get()方法中的参数变成变量,就可以很好的实现新闻内容分页了.
2.值得注意的是,这种取值方法是从分页符开始取的,所以应该在写内容之前加一次分页符,在结束时加一次,名为可以在插入数据库时做一些小的改动,很容易可以实现!