技术中心

这里象征着我们的态度和能力

>Struts2分页实现源码
作者:中国IT实验室    来源:中国IT实验室    发布时间:2012-05-03      浏览次数:7198
分享到:
欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入
    1.介绍
   
    (1)Struts2相当于是servlet,和servelt不同的是当提交到struts.xml中之后,通过aciton标签就可以直接调用想用的方法,减少了代码量。
   
    (2)在ActionSuport中set方法是注入,即是set方法是获取jsp页面中传过来的值,get方法是是向jsp页面发送值,值得一提的是有了get和set方法之后就取代了servlet中的
   
    request.getParameter("");和重定向的操作。在这里要重点理解get和set方法的使用。
   
    (3)在struts2分页中set和set方法更能突出它的用法。
   
    2.下面来看实例把!
   
    (1)首先访问这个页面时就应该查找出nowPage为1信息,所以在action中要判断nowPage是否为空。
   
    在jsp页面的分页判断可以写为:
   
    <div>
   
    <a href="${pageContext.request.contextPath}/findAllPro.action?nowPage=1">首页</a>
   
    <a href="${pageContext.request.contextPath}/findAllPro.action?nowPage=${nowPage-1<=1?1:nowPage-1}">上一页</a>
   
    <a href="${pageContext.request.contextPath}/findAllPro.action?nowPage=${nowPage+1>=page.countPage?page.countPage:nowPage+1}">下一页</a>
   
    <a href="${pageContext.request.contextPath}/findAllPro.action?nowPage=${page.countPage}">末页</a>
   
    </div>
   
    当然可以在Page中封装好nowPage的判断,在这里主要介绍action.
   
    当点击下一页的时候会连接到findAllPro.action这个struts.xml中的action,
   
    struts.xml 文件为:
   
    <?xml version="1.0" encoding="GBK"?>
   
    <!DOCTYPE struts PUBLIC
   
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
   
    struts.apache.org/dtds/struts-2.3.dtd">
   
    <struts>
   
    <package name="pro" namespace="/" extends="struts-default">
   
    <action name="findAllPro" class="cn.csdn.hr.action.ProvinceAction" method="findAll">
   
    <result>./list.jsp</result>
   
    </action>
   
    </package>
   
    </struts>
   
    从struts.xml中可以看出findAllPro连接到的是cn.csdn.hr.action.ProvinceAction下的findAll方法,我们去找ProvinceAction,为:
   
    // 分页查询
   
    public String findAll() {
   
    if ("".equals(nowPage) || nowPage == null) {
   
    this.nowPage = 1;
   
    }
   
    System.out.println(nowPage + "==============");
   
    page = new PageWhere("Province", nowPage, "where 1<2");
   
    // page= page.getDatas();
   
    return SUCCESS;
   
    }
   
    因为要返回到jsp页面,所以要写一个get方法来把page传到jsp页面中:
   
    // 得到page的值 ,并把得到的值放到page中,page可以获取所有的东西
   
    private PageWhere page;
   
    public PageWhere getPage() {
   
    return page;
   
    }
   
    这样就把当前页的信息传到了jsp中,但是在分页的时候因为nowPage是jsp和struts2来回传的值,并且是一个变量,所以设置一个属性nowPage,生成get和set方法,来获取nowPage和把修改的nowPage传到jsp中,整个ProvinceAction页面为:
   
    package cn.csdn.hr.action;
   
    import cn.csdn.hr.HibernateUtil.PageWhere;
   
    import cn.csdn.hr.domain.Province;
   
    import cn.csdn.hr.service.ProvinceService;
   
    import cn.csdn.hr.service.ProvinceServiceImpl;
   
    import com.opensymphony.xwork2.ActionSupport;
   
    public class ProvinceAction extends ActionSupport {
   
    /**
   
    * get方法是向jsp页面中传值 set方法向获取jsp页面的值
   
    */
   
    private static final long serialVersionUID = 1L;
   
    private ProvinceService provinceService = new ProvinceServiceImpl();
   
    private Integer id;
   
    private String name;
   
    public ProvinceAction() {
   
    super();
   
    }
   
    // 通过页面注入进来的。id的名称一定要和表单中 的一致
   
    public void setId(Integer id) {
   
    this.id = id;
   
    }
   
    public void setName(String name) {
   
    this.name = name;
   
    }
   
    // 接收传过来的nowPage
   
    private Integer nowPage;
   
    public void setNowPage(Integer nowPage) {
   
    this.nowPage = nowPage;
   
    }
   
    public Integer getNowPage() {
   
    return nowPage;
   
    }
   
    // 得到page的值 ,并把得到的值放到page中,page可以获取所有的东西

[1] [2] 下一页

4000-880-989
(24小时热线)
联系客服
微信公众号

官方公众号

小程序

©2008-2022 CORPORATION ALL Rights Reserved. 昆明奥远科技有限公司版权所有 滇ICP备09003328号-1 滇公网安备 53011102000818号 增值电信业务经营许可证号:滇B2-20110045
昆明那家网络公司好,新媒体运营,网站优化,网络推广,网站建设,网页设计,网站设计,网站推广,云南网站公司,昆明新媒体公司,云南网红主播,昆明SEO公司,昆明网站建设,昆明网络推广,昆明网站优化,昆明网站推广,红河网站建设,大理网络公司,曲靖网络公司,丽江网站设计,昭通网络公司,保山大数据服务,智慧高速建设,智慧校园服务,云南IDC服务商,网络安全测评,等保测评,网站关键词排名优化服务,服务客户尽超2000余家,一切尽在奥远科技,服务电话:13888956730