Strurs2中简单的分页

在数据特别多时,一般都会有分页,分页的做法特别多,在做以前一个项目时,我们小组一个同学用tag标签写的一个分页,那套标签麻烦,功能少,只有上一页和下一页,套起来比较麻烦,这次在网上花店中用到了,就自己写了一下,感觉写的还是比较好的,当然,条条大路通罗马,程序的优化和代码量的减少一般来只靠一些好的思路和想法。

下面是页面分页的代码:

<</span>div__ id="mycsspage" align="right">

              当前第<</span>a style="color: red;">${sessionScope.manapage.nowpage}</</span>a>   <</span>a href="${pageContext.request.contextPath}/shopmana/pagebackorfordard.action?pagenum=${sessionScope.manapage.nowpage}&state=forwerdpage">上一页</</span>a> / 

              <</span>a href="${pageContext.request.contextPath}/shopmana/pagebackorfordard.action?pagenum=${sessionScope.manapage.nowpage}&state=nextpage">下一页</</span>a>   <</span>a style="color: green;">${sessionScope.manapage.allpage}</</span>a>  转到第<</span>input

                     value="${sessionScope.manapage.allpage}" type="text" size="2" name="pagenum" id="gotomainpage" /> <</span>a href="javascript:void(0)" onclick="gotomainpage();">确定</</span>a>   

       </</span>div>

       <</span>script__ type="text/javascript">

       function gotomainpage(){

              var page=document.getElementByIdx_x("gotomainpage").value;

              if(page==null||page==""){

                     page=1;

              }

              location.href="${pageContext.request.contextPath}/shopmana/pagebackorfordard.action?state=jumppage&pagenum="+page;

       }

       </</span>script>

//博客把有些html标记直接解释了,所以我用了div__

可以看到,有当前第几页,有上一页,有下一页,有总共多少页,有跳转到第几页,跳转到第几页和那个···4,5,6,7,8,9···的功能差不多是一样的。下面是配置文件:

<</span>action name="pagebackorfordard"class="com.defu.shopaction.PageBackorFordardAction">

                     <</span>interceptor-ref name="manaStack" />

                     <</span>result name="success">/manager/flowerslistshow.jsp</</span>result>

                     <</span>result name="mananull">/manager/manaloging.jsp</</span>result>

              </</span>action>

配置文件没什么说的。

下面是Action代码:

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.defu.service.Mainservice;

import com.defu.vo.Flowers;

import com.defu.vo.Page;

import com.opensymphony.xwork2.ActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class PageBackorFordardAction extends ActionSupport{

       String pagenum;//传过来的当前页

       String state;//表示是什么状态,是上一页还是下一页,还是跳页

       public String getState() {

              return state;

       }

       public void setState(String state) {

              this.state = state;

       }

              public int getPagenum() {

              return Integer.parseInt(pagenum);

       }

       public void setPagenum(String pagenum) {

              this.pagenum = pagenum;

       }

       @Override

       public String execute() throws Exception {

              HttpServletRequest request=(HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);

              Mainservice service=new Mainservice();

              Listflowers=null;

              Page manapage=(Page) request.getSession().getAttribute("manapage");//第一次查询时保存的page对象

              if(this.getState().equals("forwerdpage")){//向前翻页,上一页

                     int forwerdpagenum;

                     if(this.getPagenum()==1){//已经是第一页,则显示第一页内容

                            forwerdpagenum=1;

                     }else{

                            forwerdpagenum=this.getPagenum()-1;

                            manapage.setNowpage(forwerdpagenum);

                     }

                     flowers=service.getAllflowers(forwerdpagenum-1);

              }else if(this.getState().equals("nextpage")){//向后翻页,下一页

                     int forwerdpagenum;

                     if(this.getPagenum()==manapage.getAllpage()){//已经是最后一页,则显示最后一页

                            forwerdpagenum=manapage.getAllpage();

                     }else{

                            forwerdpagenum=this.getPagenum()+1;

                            manapage.setNowpage(forwerdpagenum);

                     }

                     flowers=service.getAllflowers(forwerdpagenum-1);

              }else if(this.getState().equals("jumppage")){// 跳到第几页

                     int forwerdpagenum;

                     if(this.getPagenum()>=1&&this.getPagenum()<=manapage.getAllpage()){//在最大页和最小页之间

                            forwerdpagenum=this.getPagenum();

                            manapage.setNowpage(forwerdpagenum);

                     }else{//若用户输入的页数超过最大页,则显示第一页

                            forwerdpagenum=1;

                            manapage.setNowpage(1);

                     }

                     flowers=service.getAllflowers(forwerdpagenum-1);//查询方法

              }

              request.setAttribute("flowers",flowers);//保存一下

              return SUCCESS;

       }

 

}

注释已经写了,有读者不明白的地方,可以留言,我看到后会回复!

   以上代码是自己在项目中用过的,若使用,请注明出处!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值