本帖最后由 ibatsiSpring 于 2009-11-28 20:17:37 编辑

解决方案 »

  1.   

    给个思路吧,我感觉编程只要有思路就应该可以实现。
    不知道你数据库的存的是什么类型,我估计传到前台显示之前你是把文章内容转换成String吧,你完全可以根据分页标签的页数来划分。int page = ;//获取当前你在第几页,这个属性你的分页标签里一定会有的
    //如果你想每页显示1000个字
    String neirong = "你的文章内容";
    neirong = neirong.substring((page-1)*1000,page*1000);//每次截取内容的1000个字传递到前台
    //第一页的时候就是
    neirong = neirong(0,1000);不知道我这个思路可以不
      

  2.   

    可以做个假分页,用几个div保存整篇文章的内容,用js控制显示。
      

  3.   


    这个问题我也想过  但是我觉得不行  如果你在该页截取的字符串只有一半  那么怎么显示啊
    如:<a href="xxxx">a</a> 如果你按照每页显示多少个字截取的话,假如正好截取到"<a hre"  那页面内容怎么显示???  所以说这个方法我觉得不可行
      

  4.   

    我觉得可以逐行读取:String里面放入的是文章的源码吧  那么肯定有</br>标签了   
    如果你要每页显示50行数据,那么你可以读取到第50个</br>标签了  
    这样不知道可行不  
      

  5.   

    使用mvc在dao类中写此方法
    public List findlistfoods(int page)
    {
    List list=new ArrayList();
    int rowBin=0;
    if(page>1)
    {
    rowBin=(page-1)*4;
    }
    String sql="select top 4 * from foodInfo where foodid not in(select top "+rowBin+" foodid from foodInfo)";
    try
    {
    super.getConnection();
    pstm = con.prepareStatement(sql);
    rs=pstm.executeQuery();
    while(rs.next())
    {
    FoodBean food=new FoodBean();
    food.setFoodID(rs.getString("foodID"));
    food.setFoodName(rs.getString("foodName"));
    food.setRe(rs.getString("re"));
    food.setFoodPrice(rs.getInt("foodprice"));
    food.setFoodImage(rs.getString("foodimage"));
    list.add(food);
    }
    }catch(Exception e)
    {
    e.printStackTrace();
    }finally
    {
    super.closeResultSet();
    super.closeStatement();
    super.closeConnection();
    }
    return list;
    }
    在servlet类中调用此方法并写上下面的代码
    int p=1;
      String strP = request.getParameter("p");
       if(strP!=null){
        p=Integer.parseInt(strP);
       }
       List listfoods=foodDao.findlistfoods(p);
       request.setAttribute("foods",listfoods);
    int prep=p;
    int nextp=p;
    if(listfoods.size()==4){
    nextp=p+1;
    }
    if(p>1){
    prep=p-1;
    }
    在页面调用servlet并写下面的代码
    <div align="right"><%if(p>1){ %><a href="/restaurant/foods?p=<%=prep %>">上一页</a><%} %>
    &nbsp;|&nbsp;<%if(nextp>p){ %><a href="/restaurant/foods?p=<%=nextp %>">下一页</a><%} %></div>
    这样就解决了
      

  6.   

    汗  好像</br>不行  文章中不会出现这个的 “&lt;P&gt;” 这个呢 或许可以通过截取<p>标签来
      

  7.   

    晕,楼主你不说文章嘛,怎么还有超链接啊?,有超链接的话你只能继续解析了,就拿你超链接说吧public static void main(String[] args) 
    {
    String neirong = "你截取的N组长度为1000的字符串";
    int weizhi = neirong.lastIndexOf("<a href=\"");//最后一个超链接开始标签的位置;
    if(weizhi>0)//如果字符串里存在超链接
    {
    // 从最后一个超链接的位置开始找结束标签
    String neirong2 = neirong.substring(weizhi,neirong.length());
    if(neirong2.contains("</a>"))
    {
    System.out.println("标签结束了");
    }
    else
    {
    //标签没结束,去下一组1000字符串里找第一个结束标签
    String neirong3 = getNextString(int fybq+1);//根据分页标签+1查询下组内容
    int weizhi2 = neirong3.indexOf("</a>");//第2组内容的第一个结束标签
    String a = neirong3.substring(0,weizhi2);//这样你就可以结束了
    neirong += a;//这下内容就全了吧,HTML代码基本都可以写结束标签,这个思路应该可以满足你把
    }
    }

    }
      

  8.   

    最近我也在研究,目前没有什么好的思路。。
    我觉得分页前先把html代码过滤掉,然后再根据过滤后的字符长度进行分页,显示的时候需要把html代码给增加上没有这样做过,不知道到底行不行。
    请高人指点
      

  9.   

    如果把字符长度看成是数据库一张表的总记录, 每个字符看成是这张表的一条记录,楼主这个分页不, 思想都一样哈...
    至于有连接,楼主可以选择正则判断,多做几个if判断应该就Ok了
      

  10.   

    我也想知道这个问题怎么解决?一篇文章中不仅有文字,有的时候还涉及图片呢,还有表格什么的,更多的有的可能还有视频,要对一篇较长的文章进行分页的话,如果按
    Java codeint page= ;//获取当前你在第几页,这个属性你的分页标签里一定会有的//如果你想每页显示1000个字String neirong="你的文章内容"; 
    neirong= neirong.substring((page-1)*1000,page*1000);//每次截取内容的1000个字传递到前台//第一页的时候就是neirong= neirong(0,1000); 
    这种想法的话,如果刚好到一页完的时候<img>标签从中间被截断的话,图片就显示 不了了啊??望高手指点!!!
      

  11.   

    文章格式要做分析,HTML标签制定规则,定个传输协议不就好了
      

  12.   

    真的不行就限定新闻的长度,我看百度空间就是那个样子。
    毕竟你给内容分页的时候,以特定的字数时,就很有可能不太美观,若要真的分页,我想先限定字数,然后找到这个字数附近最近的<br>,然后这个分页。仅仅是个人想法,等待高人指点。
      

  13.   

    公司有过类似的功能,是先将html代码过滤掉,然后再截取字符串,代码我再找找
      

  14.   

    我才做完这个,其实很简单,自己设一个分页符,用什么如####,$$$$,[page_break]等东西分隔,再用split分割,分割的时候注意下,split用的是正则表达式