当前页面: 开发资料首页 → 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%>页显示 当前第 <%=pages%> 页 |<首页 "><<上一页 ">下一页>> ">尾页>|
谢谢楼上的,我试试
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行每一行合适的字数.
上面工作做完,基本就完事了,记录已经取出,截串就是了.
谢谢楼上的,能给点源码吗?我是新手,谢谢!