nutch的查询结果页面search.jsp如何实现翻页功能

翻页功能其实很简单

就是在当前的查询结果的基础上,向下查询hitsPerPage个结果,但要注意因为search.jsp源码中,将每个站点的查询返回结果数hitsPerSite设置为2,所以翻页是会出现问题,就是返回结果数不正确,可以根据上一篇介绍的方法解决这个问题。

代码改动:

将原来search.jsp中的如下代码:

if ((hits.totalIsExact() && end < hits.getTotal()) // more hits to show
    || (!hits.totalIsExact() && (hits.getLength() > start+hitsPerPage))) {
%>
    <form name="next" action="../search.jsp" method="get">
    <input type="hidden" name="query" value="<%=htmlQueryString%>">
    <input type="hidden" name="lang" value="<%=queryLang%>">
    <input type="hidden" name="start" value="<%=end%>">
    <input type="hidden" name="hitsPerPage" value="<%=hitsPerPage%>">
    <input type="hidden" name="hitsPerSite" value="<%=hitsPerSite%>">
    <input type="hidden" name="clustering" value="<%=clustering%>">
    <input type="submit" value="<i18n:message key="next"/>">
<% if (sort != null) { %>
    <input type="hidden" name="sort" value="<%=sort%>">
    <input type="hidden" name="reverse" value="<%=reverse%>">
<% } %>
    </form>
<%
    }

if ((!hits.totalIsExact() && (hits.getLength() <= start+hitsPerPage))) {
%>
    <form name="showAllHits" action="../search.jsp" method="get">
    <input type="hidden" name="query" value="<%=htmlQueryString%>">
    <input type="hidden" name="lang" value="<%=queryLang%>">
    <input type="hidden" name="hitsPerPage" value="<%=hitsPerPage%>">
    <input type="hidden" name="hitsPerSite" value="0">
    <input type="hidden" name="clustering" value="<%=clustering%>">
    <input type="submit" value="<i18n:message key="showAllHits"/>">
<% if (sort != null) { %>
    <input type="hidden" name="sort" value="<%=sort%>">
    <input type="hidden" name="reverse" value="<%=reverse%>">
<% } %>
    </form>
<%
    }
%>


替换为:

<table align="center">  
   <tr>  
      <td>  
            <%  
        // 显示上一页按钮  
            if (start >= hitsPerPage)  
            {  
            %>  
                    <form name="pre" action="../search.jsp" method="get">  
                        <input type="hidden" name="query" value="<%=htmlQueryString%>">  
                        <input type="hidden" name="lang" value="<%=queryLang%>">  
                        <input type="hidden" name="start" value="<%=start - hitsPerPage%>">  
                        <input type="hidden" name="hitsPerPage" value="<%=hitsPerPage%>">  
                        <input type="hidden" name="hitsPerSite" value="<%=hitsPerSite%>">  
                        <input type="hidden" name="clustering" value="<%=clustering%>">  
                        <input type="submit" value="上一页">  
           <%} %>  
		   </form>  
                     
     <%  
     //显示页码按钮  
    int startnum=1;   
    //页面中最前面的页码编号,我设定(满足)共10页,当页为第6页  
    //若果结果大于等于11页,每次显示11个按钮,当前按钮在最中间,即第6个  
    if((int)(start/hitsPerPage)>=5)  
     startnum=(int)(start/hitsPerPage)-4;  
    for(int i=hitsPerPage*(startnum-1),j=0;i<=hits.getTotal()&&j<=10;)  
    {     
    if(hits.getTotal()%10==0&&i==hits.getTotal()) break; //搜索结果为整数的时候处理  
     %>  
     <td>  
    <!-- <%=startnum%> && <%=hits.getTotal()%> -->  
     <form name="next" action="../search.jsp" method="get">  
     <input type="hidden" name="query" value="<%=htmlQueryString%>">  
     <input type="hidden" name="lang" value="<%=queryLang%>">  
     <input type="hidden" name="start" value="<%=i%>">  
     <input type="hidden" name="hitsPerPage" value="<%=hitsPerPage%>">  
     <input type="hidden" name="hitsPerSite" value="<%=hitsPerSite%>">  
     <input type="hidden" name="clustering" value="<%=clustering%>">  
     <input type="submit" value="<%=i/hitsPerPage+1 %>">  
    </form>  
    </td>  
    <%  
    i=i+10;  
    j++;  
    }//for  
     %>  
        <td>  
        <%  
  //显示下一页按钮  
         if ((hits.totalIsExact() && end < hits.getTotal()) // more hits to show  
              || (!hits.totalIsExact() && (hits.getLength() > start  + hitsPerPage))) {  
         %>  
                     
    <form name="next" action="../search.jsp" method="get">  
     <input type="hidden" name="query" value="<%=htmlQueryString%>">  
     <input type="hidden" name="lang" value="<%=queryLang%>">  
     <input type="hidden" name="start" value="<%=end%>">  
     <input type="hidden" name="hitsPerPage" value="<%=hitsPerPage%>">  
     <input type="hidden" name="hitsPerSite" value="<%=hitsPerSite%>">  
     <input type="hidden" name="clustering" value="<%=clustering%>">  
     <input type="submit" value="<i18n:message key="next"/>">  
    </form>  
         <%} %>  
         </td>  
     </tr>  
</table>


就可以实现翻页。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WitsMakeMen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值