jsp实现新闻内容或超长文章的分页

来源:互联网 发布:重装mac 保留 编辑:程序博客网 时间:2024/04/30 13:05

转自: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.值得注意的是,这种取值方法是从分页符开始取的,所以应该在写内容之前加一次分页符,在结束时加一次,名为可以在插入数据库时做一些小的改动,很容易可以实现!

0 0