熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Struts2分頁實現源碼

2013-11-23 20:06:46  來源: Java開源技術 
    介紹
   
    ()Struts相當於是servlet和servelt不同的是當提交到strutsxml中之後通過aciton標簽就可以直接調用想用的方法減少了代碼量
   
    ()在ActionSuport中set方法是注入即是set方法是獲取jsp頁面中傳過來的值get方法是是向jsp頁面發送值值得一提的是有了get和set方法之後就取代了servlet中的
   
    requestgetParameter(和重定向的操作在這裡要重點理解get和set方法的使用
   
    ()在struts分頁中set和set方法更能突出它的用法
   
    下面來看實例把!
   
    ()首先訪問這個頁面時就應該查找出nowPage為信息所以在action中要判斷nowPage是否為空
   
    在jsp頁面的分頁判斷可以寫為
   
    <div>
   
    <a ${pagntextPath}/findAllProaction?nowPage=>首頁</a>
   
    <a ${pagntextPath}/findAllProaction?nowPage=${nowPage<=?:nowPage}>上一頁</a>
   
    <a ${pagntextPath}/findAllProaction?nowPage=${nowPage+>=untPage?untPage:nowPage+}>下一頁</a>
   
    <a ${pagntextPath}/findAllProaction?nowPage=${untPage}>末頁</a>
   
    </div>
   
    當然可以在Page中封裝好nowPage的判斷在這裡主要介紹action
   
    當點擊下一頁的時候會連接到findAllProaction這個strutsxml中的action
   
    strutsxml 文件為
   
    <?xml version= encoding=GBK?>
   
    <!DOCTYPE struts PUBLIC
   
    //Apache Software Foundation//DTD Struts Configuration //EN
   
    /dtds/strutsdtd>
   
    <struts>
   
    <package name=pro namespace=/ extends=strutsdefault>
   
    <action name=findAllPro class=cncsdnhractionProvinceAction method=findAll>
   
    <result>/listjsp</result>
   
    </action>
   
    </package>
   
    </struts>
   
    從strutsxml中可以看出findAllPro連接到的是cncsdnhractionProvinceAction下的findAll方法我們去找ProvinceAction
   
    // 分頁查詢
   
    public String findAll() {
   
    if (equals(nowPage) || nowPage == null) {
   
    thisnowPage = ;
   
    }
   
    Systemoutprintln(nowPage + ==============
   
    page = new PageWhere(Province nowPage where <
   
    // page= pagegetDatas()
   
    return SUCCESS;
   
    }
   
    因為要返回到jsp頁面所以要寫一個get方法來把page傳到jsp頁面中
   
    // 得到page的值 並把得到的值放到page中page可以獲取所有的東西
   
    private PageWhere page;
   
    public PageWhere getPage() {
   
    return page;
   
    }
   
    這樣就把當前頁的信息傳到了jsp中但是在分頁的時候因為nowPage是jsp和struts來回傳的值並且是一個變量所以設置一個屬性nowPage生成get和set方法來獲取nowPage和把修改的nowPage傳到jsp中整個ProvinceAction頁面為
   
    package cncsdnhraction;
   
    import cncsdnhrHibernateUtilPageWhere;
   
    import cncsdnhrdomainProvince;
   
    import cncsdnhrserviceProvinceService;
   
    import cncsdnhrserviceProvinceServiceImpl;
   
    import comopensymphonyxworkActionSupport;
   
    public class ProvinceAction extends ActionSupport {
   
    /**
   
    * get方法是向jsp頁面中傳值 set方法向獲取jsp頁面的值
   
    */
   
    private static final long serialVersionUID = L;
   
    private ProvinceService provinceService = new ProvinceServiceImpl()
   
    private Integer id;
   
    private String name;
   
    public ProvinceAction() {
   
    super()
   
    }
   
    // 通過頁面注入進來的id的名稱一定要和表單中 的一致
   
    public void setId(Integer id) {
   
    thisid = id;
   
    }
   
    public void setName(String name) {
   
    thisname = name;
   
    }
   
    // 接收傳過來的nowPage
   
    private Integer nowPage;
   
    public void setNowPage(Integer nowPage) {
   
    thisnowPage = nowPage;
   
    }
   
    public Integer getNowPage() {
   
    return nowPage;
   
    }
   
    // 得到page的值 並把得到的值放到page中page可以獲取所有的東西


   
    private PageWhere page;
   
    public PageWhere getPage() {
   
    return page;
   
    }
   
    // 分頁查詢
   
    public String findAll() {
   
    if (equals(nowPage) || nowPage == null) {
   
    thisnowPage = ;
   
    }
   
    Systemoutprintln(nowPage + ==============
   
    page = new PageWhere(Province nowPage where <
   
    // page= pagegetDatas()
   
    return SUCCESS;
   
    }
   
    }
   
    整個jsp頁面為
   
    <body>
   
    <div align=center>
   
    <h>
   
    省市操作
   
    </h>
   
    <table border=px cellpadding=px cellspacing=px width=px>
   
    <tr>
   
    <th>
   
    編號
   
    </th>
   
    <th>
   
    省名
   
    </th>
   
    <th>
   
    操作
   
    </th>
   
    </tr>
   
    <tbody>
   
    <c:forEach items=${pagedatas} var=entity>
   
    <tr align=center>
   
    <td>
   
    ${entityid}
   
    </td>
   
    <td>
   
    ${entityname}
   
    </td>
   
    <td>
   
    <a ${pagntextPath}/insertjsp>添加</a>
   
    <a ${pagntextPath}/delProaction?id=${entityid}>刪除</a>
   
    <a ${pagntextPath}/updateProaction?id=${entityid}>編輯</a>
   
    </td>
   
    </tr>
   
    </c:forEach>
   
    </tbody>
   
    </table>
   
    <br/>
   
    <div>
   
    <a ${pagntextPath}/findAllProaction?nowPage=>首頁</a>
   
    <a ${pagntextPath}/findAllProaction?nowPage=${nowPage<=?:nowPage}>上一頁</a>
   
    <a ${pagntextPath}/findAllProaction?nowPage=${nowPage+>=untPage?untPage:nowPage+}>下一頁</a>
   
    <a ${pagntextPath}/findAllProaction?nowPage=${untPage}>末頁</a>
   
    </div>
   
    </div>
   
    </body>
   
    以上數據和從hibernate配置的數據庫中讀取出來的分頁學會了這個就是小case了主要看其中的注釋就ok了但是在寫更新的時候需要注意
   
    更新需要在更新完之後要在內部跳轉到查詢的頁面所以結果應寫為
   
    <result type=chain>findAllPro</result>
   
    記住要寫type類型


From:http://tw.wingwit.com/Article/program/Java/ky/201311/27942.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.