对超长文本数据进行分页显示

1.概述

在网页中显示一些文本过长的信息,例如小说、简介等信息。如果将这样的信息全部显示在一个页面中会很不方便,这时就需要将这段超长文本分页显示在网页中的某个区域中。

 

2.技术要点

本实例是将要显示的信息一次保存在String类型的对象中,并通过该对象的总长度和一次显示的长度计算总共有多少页。然后通过substring()方法获取当前页显示的内容。

String类型对象方法介绍如下。

a. length()方法:返回字符串的长度。

b. replace(char oldChar, char newChar)方法:返回一个新的字符串,它是通过用newChar替换此字符串中出现的所有oldChar而生成的。

参数说明:

a. oldChar:字符串中的字符,用来被新字符所替换。

b. newChar:用来替换旧字符的新字符。

c. substring(int beginIndex, int endIndex)方法:返回一个新字符串,它是此字符串的一个子字符串。

d. beginIndex:获取子字符串在原字符串中的起始位置。

e. EndIndex:获取子字符串在原字符串中的结束位置。

 

3.具体实现

(1)创建数据库操作类UserDao,读取数据库中的数据。

(2)在index.jsp页面中,首先通过JavaBean标签调用sort类,获取字符串的总长度和起始页的页码。代码如下:

(2)在index.jsp页面中,首先通过JavaBean标签调用sort类,获取字符串的总长度和起始页的页码。代码如下:
<%
      ResultSet Rs = GetRs("Select * From Demo_Tab");                   //读取数据库中的结果集
         String Demo = "";                                                      //定义变量
         while (Rs.next())                                                              //循环输出结果
        Demo += Rs.getString("Demo");
         int Size = 400;                                                           //定义每页输出400个字节          
         int Len = Demo.length();                                            //获取总字符的长度
         int CountPage = Len / Size;                                               //计算共有几页
         if (Len % Size > 0)
        CountPage++;
         int left;
         if (request.getParameter("page1") == null) {
        left = 0;
         } else {
        left = Integer.parseInt(request.getParameter("page1").toString());
         }
%>

然后,输出当前页的信息。left为子字符串的起始位置,Size为获取字符串的长度。代码如下:

<%
      if (left + Size > Len) {
%>
<%=Demo.substring(left, left + Len - left)%>
<%
      } else {
%>
<%=Demo.substring(left, left + Size)%>
<% }    %>

最后,设置翻页超级链接,通过参数传递子字符串的起始位置。代码如下:

<a href="index.jsp?page1=0">第一页</a> 
<% if (left > 0) {      %> 
<a href="index.jsp?page1=<%=left-Size%>">上一页</a> 
<% }    %> 
<% if (left < Len - Size) {     %>
      <a href="index.jsp?page1=<%=left+Size%>">下一页</a>
<% }    %> 
<a href="index.jsp?page1=<%=Len-(Len%Size)%>">最后一页</a>
 

 

posted @ 2016-06-13 19:28  柯南&  阅读(2107)  评论(0编辑  收藏  举报