站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题100分求文章分页解决方案!

100分求文章分页解决方案!

摘要: 100分求文章分页解决方案!


做了一个新闻系统,新闻内容及标题等是存在数据库中的,用JSP动态取数据。新闻内容字段为TEXT型,当文章太长时,想分页显示,每页二十五行,要考虑到段落的问题,可能某一行就一个字!求解决方案。
切记,不是SQL语句的结果集分页,就是一条记录,把这一条记录的结果分页显示!


问题不在于你说的可能一行只有一个字,而是这一行有超过实际显示的25行的的字。在数据库中存储的文字是以换行来区分一行的,但是显示时候却是根据实际页面来分行的,数据库中的一行其实就是显示的以一段,如果这一段超过25行呢?难点在于不知道实际显示的一行到底有多少字。


绑顶,学习。。。。


但是也得有解决方案呀?大家帮想想办法!!分不够可以在开贴加分!


取出来截取字符串


比较麻烦,关注中。。。



ldg_2(绿豆糕) 正解

而且还有一个用户屏幕解析是640×400 还是1024×768的问题

不可能很完美的,用一种解析度和字体大小估算比较简单


我不要求很完美,要求能分出来就可以,不用十分准确,那应该怎么实现啊?


新闻内容存的是文本,还是html


字符串截取分页

String content = "ssssssssssssssssssss" //新闻内容
String strPage = request.getParameter("strPage");
if (strPage == null || strPage.equals("0")){
strPage = "1";
}
int COUNT=2500;
int pages=Integer.parseInt(strPage);
int countPagesNum = content.length()/COUNT+1;
if (pages>countPagesNum){
pages = countPagesNum;
}

//显示新闻
if(content.length()>pages*COUNT){
out.println(content.substring((pages-1)*COUNT,pages*COUNT));
}else{
out.println(content.substring((pages-1)*COUNT));
}

//分页

文章总计分:<%=countPagesNum%>页显示&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当前第 <%=pages%> 页&nbsp;&nbsp;&nbsp;&nbsp;|&lt;首页&nbsp;&nbsp;&nbsp;&nbsp;">&lt;&lt;上一页&nbsp;&nbsp;&nbsp;&nbsp;">下一页&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;">尾页&gt;|



谢谢楼上的,我试试


waterborn(WaterBorn) ( ) 信誉:100 Blog 2006-09-20 11:56:00 得分: 0


新闻内容存的是文本,还是html


我存的是文本,把新闻内容存在数据库里了



wangkunhong(乔.Jo) ( ) 信誉:90 Blog

你的方法我试了,是能分页显示出来,就是不太准,有什么什么办法更精确一些呢?


关注


学习,呵呵!


自己顶上去,希望能有更好的解决方案!


mark!


ding




俺现在也在做这事

自动分页,很麻烦的
我是这样做的
按字数和"/n/r"结合,先不管咋样,读完指定的字数再说,然后,再找到离字数最近的一个换行符
这就是一页,后面以此类推


public String getPageContent()
{
int wordCount = 500; //500字为一页
NewsPO po ==>来源于DB
String tempContent = po.getContent(); //文章的全部内容
if(tempContent.length()<=wordCount) //如果文章小于500字,不用分页
return tempContent;
String pageContent = tempContent.subString(0,wordCount); //获得前500字的内容
tempContent = tempContent.subString(wordCount); //把tempContent改为500字以后的内容
int index = tempContent.indexOf("/n")); //换行符的位置
if(index==-1)
pageContent +=tempContent; //如果500字后没有分段了,也不分了,当然也可以强制分页
String tempB = tempContent.subString(0,index); //500字后的第一个换行符前的内容
return pageContent+tempB;
}


随便写上几句
兄弟,还是手动分页吧


谢谢楼上的,我是初学,最好能有完整代码!!


学习!


打不开啊
http://www.9i5e.com/Companys.aspx


帮顶.


自己在顶上去!!


我也在做新闻管理系统,这块也不太懂,要求手动分页和自动分页。 两者都不知道怎么处理,第一次做。 我的文章生成的是静态页面,不是动态的。

顺便帮顶


在顶,求解决方案!!


楼上的两位这种分法是不错 可是UBB代码被分在两页怎么办?


ding


要给个完整代码,可能有点困难了,楼主自己琢磨琢磨吧

建议楼主把页面都生成HTML
另外,也没必要那么精确,说500字就一定得500字,说一千字就一千字,这样没有意义

至于楼上讲的UBB被分在两页,我的方案不存在这个问题
每页的字数只是参考,实际上还是根据段落来分的. 把一个UBB分开放在两个段落里面,这样不太可能吧.


我也想生成HTML,但我是新手,想通过JSP动态的把内容取出来,先把项目完成了,是不是生成HTML比较难啊,能否给点思路和代码啊,以前没有做过啊,我是从PB上转过来的!


mark!


可不可以考虑在编辑内容时手动插入分页符号(自己定的特殊符号)


mark!!!!


继续顶上去,求解决方案!


建议使用servlet 输出~~~这样可以方便控制`~我做过类似的后台管理


取数据时分页?
我感觉根本走岔道了.
楼主的意思也说清了,"不是SQL语句的结果集分页,就是一条记录,把这一条记录的结果分页显示!"

关键的地方,还没有人说到:在页面里显示的时候的字体大小!

由于页面里用于显示文章的字体很可能因为不同的CSS样式而发生变化,同时,用户设置的屏幕分辨率到底是多少也是未知的. 所以这个问题只能(或者最好)是用JS来做.

通过JS可以获取用户实际的屏幕分辨率,还可以得到显示文字的字体大小,然后实时计算出合适的显示区宽度和高度,进而得到所谓的25行每一行合适的字数.

上面工作做完,基本就完事了,记录已经取出,截串就是了.


谢谢楼上的,能给点源码吗?我是新手,谢谢!


↑返回目录
前一篇: 100分求struts+hibernate的例子。
后一篇: 一个js取值问题