java如何做新闻翻页 本帖最后由 ibatsiSpring 于 2009-11-28 20:17:37 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给个思路吧,我感觉编程只要有思路就应该可以实现。不知道你数据库的存的是什么类型,我估计传到前台显示之前你是把文章内容转换成String吧,你完全可以根据分页标签的页数来划分。int page = ;//获取当前你在第几页,这个属性你的分页标签里一定会有的//如果你想每页显示1000个字String neirong = "你的文章内容";neirong = neirong.substring((page-1)*1000,page*1000);//每次截取内容的1000个字传递到前台//第一页的时候就是neirong = neirong(0,1000);不知道我这个思路可以不 可以做个假分页,用几个div保存整篇文章的内容,用js控制显示。 这个问题我也想过 但是我觉得不行 如果你在该页截取的字符串只有一半 那么怎么显示啊如:<a href="xxxx">a</a> 如果你按照每页显示多少个字截取的话,假如正好截取到"<a hre" 那页面内容怎么显示??? 所以说这个方法我觉得不可行 我觉得可以逐行读取:String里面放入的是文章的源码吧 那么肯定有</br>标签了 如果你要每页显示50行数据,那么你可以读取到第50个</br>标签了 这样不知道可行不 使用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><%} %> | <%if(nextp>p){ %><a href="/restaurant/foods?p=<%=nextp %>">下一页</a><%} %></div>这样就解决了 汗 好像</br>不行 文章中不会出现这个的 “<P>” 这个呢 或许可以通过截取<p>标签来 晕,楼主你不说文章嘛,怎么还有超链接啊?,有超链接的话你只能继续解析了,就拿你超链接说吧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代码基本都可以写结束标签,这个思路应该可以满足你把 } } } 最近我也在研究,目前没有什么好的思路。。我觉得分页前先把html代码过滤掉,然后再根据过滤后的字符长度进行分页,显示的时候需要把html代码给增加上没有这样做过,不知道到底行不行。请高人指点 如果把字符长度看成是数据库一张表的总记录, 每个字符看成是这张表的一条记录,楼主这个分页不, 思想都一样哈...至于有连接,楼主可以选择正则判断,多做几个if判断应该就Ok了 我也想知道这个问题怎么解决?一篇文章中不仅有文字,有的时候还涉及图片呢,还有表格什么的,更多的有的可能还有视频,要对一篇较长的文章进行分页的话,如果按Java codeint page= ;//获取当前你在第几页,这个属性你的分页标签里一定会有的//如果你想每页显示1000个字String neirong="你的文章内容"; neirong= neirong.substring((page-1)*1000,page*1000);//每次截取内容的1000个字传递到前台//第一页的时候就是neirong= neirong(0,1000); 这种想法的话,如果刚好到一页完的时候<img>标签从中间被截断的话,图片就显示 不了了啊??望高手指点!!! 文章格式要做分析,HTML标签制定规则,定个传输协议不就好了 真的不行就限定新闻的长度,我看百度空间就是那个样子。毕竟你给内容分页的时候,以特定的字数时,就很有可能不太美观,若要真的分页,我想先限定字数,然后找到这个字数附近最近的<br>,然后这个分页。仅仅是个人想法,等待高人指点。 公司有过类似的功能,是先将html代码过滤掉,然后再截取字符串,代码我再找找 我才做完这个,其实很简单,自己设一个分页符,用什么如####,$$$$,[page_break]等东西分隔,再用split分割,分割的时候注意下,split用的是正则表达式 求解疑:servlet到jsp的转形,我觉得好难哦! 高手进来帮忙啦。。jsp分页问题。。。。。。。。。。。。。。。。。。 这种情况如何插入多的一端?hibernate一对多关联映射 如何用脚本实现将一个以逗号分割的字符串转换成一个数组列表 我要告Struts!!!,他欺骗了我 .\ /. 真TMD的! jsp中如何判断是哪个按钮提交的 有关jsp系统做成光盘的问题?急用,高分30分? 数据库连接不上,求大神来! jsp中如何执行系统命令 求大神支招快哭了 怎么在注册用户时的及时提醒用户 非常简单,但是又不好解释的问题
不知道你数据库的存的是什么类型,我估计传到前台显示之前你是把文章内容转换成String吧,你完全可以根据分页标签的页数来划分。int page = ;//获取当前你在第几页,这个属性你的分页标签里一定会有的
//如果你想每页显示1000个字
String neirong = "你的文章内容";
neirong = neirong.substring((page-1)*1000,page*1000);//每次截取内容的1000个字传递到前台
//第一页的时候就是
neirong = neirong(0,1000);不知道我这个思路可以不
这个问题我也想过 但是我觉得不行 如果你在该页截取的字符串只有一半 那么怎么显示啊
如:<a href="xxxx">a</a> 如果你按照每页显示多少个字截取的话,假如正好截取到"<a hre" 那页面内容怎么显示??? 所以说这个方法我觉得不可行
如果你要每页显示50行数据,那么你可以读取到第50个</br>标签了
这样不知道可行不
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><%} %>
| <%if(nextp>p){ %><a href="/restaurant/foods?p=<%=nextp %>">下一页</a><%} %></div>
这样就解决了
{
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代码基本都可以写结束标签,这个思路应该可以满足你把
}
}
}
我觉得分页前先把html代码过滤掉,然后再根据过滤后的字符长度进行分页,显示的时候需要把html代码给增加上没有这样做过,不知道到底行不行。
请高人指点
至于有连接,楼主可以选择正则判断,多做几个if判断应该就Ok了
Java codeint page= ;//获取当前你在第几页,这个属性你的分页标签里一定会有的//如果你想每页显示1000个字String neirong="你的文章内容";
neirong= neirong.substring((page-1)*1000,page*1000);//每次截取内容的1000个字传递到前台//第一页的时候就是neirong= neirong(0,1000);
这种想法的话,如果刚好到一页完的时候<img>标签从中间被截断的话,图片就显示 不了了啊??望高手指点!!!
毕竟你给内容分页的时候,以特定的字数时,就很有可能不太美观,若要真的分页,我想先限定字数,然后找到这个字数附近最近的<br>,然后这个分页。仅仅是个人想法,等待高人指点。