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


    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>
     
  • 相关阅读:
    Program C--二分
    Program A-归并排序
    Program E-- CodeForces 18C
    Program B--CodeForces 492B
    2015 HUAS Provincial Select Contest #1 C
    2015 HUAS Provincial Select Contest #1 B
    2015 HUAS Provincial Select Contest #1 A
    CSU 1111.三家人。第三次选拔赛D题:整理花园酬劳分配问题
    将10进制整数转换成16进制整数输出
    -UVa10935题:Trowing cards away1解答及简单分析
  • 原文地址:https://www.cnblogs.com/zkn11199/p/5581802.html
Copyright © 2020-2023  润新知