谁做过(大段文字)分页显示

03-03-26 cute

领导要求用这种方式实现。。。 没有思路。。

大家有没有例子???

谁能梆梆忙。。 有人做过马??

zz
2003-03-26 21:41

没做过,我考虑如下两类情况:

1、“大段文字”集中储存(如:储存在一个table的某个字段中)

那么无论是使用请求时动态生成还是预先生成若干分页,都存在

根据“大段文字”“自动”格式化成分页页面的过程,这个过程是

很复杂的,加上“图文并茂”的要求就很难实现的,不考虑

2、“大段文字”分页面存储(如:n页存n条记录)

由录入人员在录入的时候完成排版分页工作,实际上是把“大段

文字”当成若干个“小段文字”,一篇文章当成多篇文章处理。这需要

额外记录这些“子文章”之间的关系,也可以做的如分“上、中、下”

分不同的时间发布一系列文章等等

一个想法,欢迎大家讨论,呵呵要有作过的同志介绍介绍经验就更好了

cute
2003-03-27 08:59

欢迎大家讨论。实现过程不是很难(作之前考虑地问题很多,其实不然)。主要是你是否对类库的了解。知道函数后。就可以方便地作出。

本程序。主要用到了两个函数: session substring 。程序只实现了:

首页 上页 下页 尾页 。有不足的地方,大家可以提出。

(完全测试通过)

源程序:

---------------

<%
			final int perpage=2000;//每页显示汉字数
			boolean flagDown=true;  //决定上下页
			boolean flagUp=true; 
			int count=0;          //文章的总数字
			int countper=0;       //总页数
			int x=0;			  //起始位置
			int y=perpage;            //结束位置
			CONTENT=(String)session.getAttribute("CONTENT");//获取文章
			if(CONTENT!=null){

						count=CONTENT.length();//得到文章的总记录数
						countper=count/perpage;
					/*	int tmp=count%perpage;
						if(tmp==1){ //如果有余数
							
							countper=countper+1; //总页数加一
						}
					*/
	
			}
			String Updown=request.getParameter("fzid");//判断上下页
		
			if(Updown!=null){
				
				x=Integer.parseInt(Updown);
				if(x==1){

					y=count;
						x=count-perpage;

				flagDown=false;
				}else{
					/*   翻页显示调整   */

					y=x;				
					x=y-perpage;
					
				}
			}

			if(count<=perpage){    //如果总记录数小于 每页显示汉字数 则直接输出

				out.print(CONTENT);

			}else{					//大于 每页显示汉字数 进行分页显示

				if(y>count){			//判断是否到(文章结尾)
					
					y=y-perpage;
					x=y;
					y=count;
					flagDown=false;
				}
				
				if(Updown==null||x<=0){			//判断是否到(文章开始)
					
					x=0;
					y=perpage;

					flagUp=false;
				}

				
				
				CONTENT=CONTENT.substring(x,y);  //决定位置

				out.print("<div align=left>"+CONTENT+"</div>"); //输出内容

				out.print("<br><br><br><br>");
				out.print("<div align=center>");

				if(countper>0){
					out.print("总页数("+(countper+1)+")&nbsp");
					
				}

				if(!flagUp==false){ //判断是否(文章开始)

				out.print("<a href=index_fz_dis.jsp?fzid="+(0)+">首页</a>&nbsp");
				out.print("<a href=index_fz_dis.jsp?fzid="+(y-perpage)+">上一页</a>&nbsp;&nbsp");
				
				}
				if(!flagDown==false){ //判断是否到(文章结尾)

				out.print("<a href=index_fz_dis.jsp?fzid="+(y+perpage)+">下一页</a>&nbsp;");
				out.print("<a href=index_fz_dis.jsp?fzid="+(1)+">尾页</a>");

				}
			}// else 判断 结束
			out.print("</div>");
			%>

banq
2003-03-27 15:39

参考jive的分页显示

如果在EJB环境中,使用DAO访问数据库

cute
2003-03-28 11:25

谢斑竹指点。我再作完善一些。。。

---