skysnowking
2009-11-28 16:17
浏览 198
已采纳

jsp的分页类

以下是我写的一个类,是用来分页的,目标是为了根据创建新对象时传进去的参数,得到自己想要的值。
可是我写了一半不知道怎么写了。就差最一个页码号的集合了,有会的帮我写一下了。还有我想知道jsp的菜单联动是怎么做出来的!

package com.snow.util;

import java.util.LinkedList;

public class PageBean {
/* sql开始位置 /
private int sqlStart;
/
sql结束位置 */
private int sqlEnd;

/* 列表的大小 */
private int pageSize;
/* 当前页号 是索引号 */
private int pageIndex;
/* 第一页 */
private int firstIndex = 0;
/* 最后一页 */
private int lastIndex;
/* 下一页 */
private int nextIndex;
/* 上一页 */
private int previousIndex;
/* 页号的集合 */
private LinkedList<Integer> listIndex = null;
/* 页号的长度 */
private int listCount;
/* 距两列表两边的距离 */
private int listMargin;
/* 总工多少页 */
private int countPage;
/* 总工有多少条记录 */
private int count;

public PageBean(int pageSize, int pageIndex, int count) {
    this.pageSize = pageSize;
    this.listCount = 5;
    this.listMargin = 3;
    this.count = count;
    this.getCountPage();
    if (pageIndex > 0 && pageIndex < (this.countPage)) {
        this.pageIndex = pageIndex;
    } else {
        this.pageIndex = 0;
    }

}

/* sql开始位置 */
public int getSqlStart() {
    this.sqlStart = this.pageIndex * this.pageSize;
    return sqlStart;
}

/* sql结束位置 */
public int getSqlEnd() {
    return sqlEnd;
}

/* 列表的大小 */
public int getPageSize() {
    return pageSize;
}

/* 当前页号 是索引号 */
public int getPageIndex() {
    return pageIndex;
}

/* 第一页 */
public int getFirstIndex() {
    this.firstIndex = 0;
    return firstIndex;
}

/* 最后一页 */
public int getLastIndex() {
    if (this.countPage > 0) {
        this.lastIndex = this.countPage - 1;
    } else {
        this.lastIndex = 0;
    }
    return lastIndex;
}

/* 下一页 */
public int getNextIndex() {
    this.nextIndex = this.pageIndex + 1;
    if (this.nextIndex >= this.countPage) {
        this.nextIndex = this.countPage - 1;
    }
    return nextIndex;
}

/* 上一页 */
public int getPreviousIndex() {
    this.previousIndex = this.pageIndex - 1;
    if (this.previousIndex < 0) {
        this.previousIndex = 0;
    }
    return previousIndex;
}

/* 页号的集合 */
[color=red]public LinkedList<Integer> getListIndex() {[/color]      int currPageNumber = this.pageIndex + 1;
    int pageNumbers = this.countPage;
    int start=this.listMargin;
    int end=pageNumbers-this.listMargin;
    int logo=-19;
    if((currPageNumber>start)&& (currPageNumber<end)){
        if((currPageNumber-this.listMargin)==1){
            logo=2;
        }else{
            logo=currPageNumber-this.listMargin+1;
        }
    }else{
        if(currPageNumber<=start){
            logo=1;
        }else {
            if((pageNumbers-currPageNumber)==0){
                logo=pageNumbers-this.listCount+1;
            }else{
                logo=currPageNumber-this.listCount-1;
            }
        }
    }
    System.out.println("start:"+String.valueOf(start));
    System.out.println("end:"+String.valueOf(end));
    System.out.println("logo:"+String.valueOf(logo));
    System.out.println("分页长度:" + String.valueOf(this.listCount));
    System.out.println("两边距离" + String.valueOf(this.listMargin));
    System.out.println("当前的页号:" + String.valueOf(currPageNumber));
    System.out.println("总页数:" + String.valueOf(pageNumbers));
    return listIndex;
}

/* 页号的长度 */
public int getListCount() {
    return listCount;
}

/* 总工多少页 */
public int getCountPage() {
    if ((this.count % this.pageSize) == 0) {
        this.countPage = this.count / this.pageSize;
    } else {
        this.countPage = this.count / this.pageSize;
        this.countPage = this.countPage + 1;
    }
    return countPage;
}

public int getListMargin() {
    return listMargin;
}

public void setListMargin(int listMargin) {
    if (this.listMargin <= this.listCount) {
        this.listMargin = this.listCount;
    }
    this.listMargin = listMargin;
}

}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • yayg2008 2009-11-29 21:54
    已采纳

    关于分页,我的项目中用到了一个分页标签,很方便的,如果楼主需要,留下方式,我改天总结了发你。菜单联动,用DWR做超简单的,网上也有很多这样的例子,可以自己找下

    点赞 打赏 评论
  • hyperprice 2009-11-28 22:15

    1.调用此方法 把 page放到setAttribute里面,页面例如 上一页 ${page -1} 或 {page +1}
    然后在通过连接 把这个属性传到后台 就ok了 举个例子:
    页面上
    /你的action.action?pageNo=${pageNo-1 }">[上一页]

    后台方法 假如为:

    public String fenye(){
    接到参数 传到你的方法中
    }

    //我是边玩wow边看到帖子 中间划水会给你解答的 可能有错误 仅供参考

    2.联动菜单很好实现 2级联动 或 3级联动 或 多级 都没问题
    用dwr 或 jquery 实现起来玩跟一样 下面是 当初刚学ajax时随便做着玩的一个例子 没用框架 仅供参考
    [code="java"]

    var XMLHttpReq = false; function showMain(id){ if(window.XMLHttpRequest) { XMLHttpReq = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } XMLHttpReq.open("get", "<%=request.getContextPath()%>/showMenu.do?method=dyMenu&id="+id, true); XMLHttpReq.onreadystatechange = processResponse; XMLHttpReq.send(null); } function processResponse(){ if (XMLHttpReq.readyState == 4) { if (XMLHttpReq.status == 200) { //alert(XMLHttpReq.responseText); updateSub(); //XMLHttpReq.responseXML } else { window.alert("Exception"); } } } function updateSub(){ document.getElementById("menulist").options.length=0; var names=XMLHttpReq.responseXML.getElementsByTagName("name"); var values=XMLHttpReq.responseXML.getElementsByTagName("value"); for(var i=0;i<names.length;i++){ document.getElementById("menulist").options[i]=new Option(names[i].firstChild.data,values[i].firstChild.data); } }
    </head>
    
    <body>
        <select id="select" onchange="showMain(this.value)">
            <option>
                请选择
            </option>
            <c:forEach var="menu" items="${list}">
                <option value="${menu.id }">
                    ${menu.name }
                </option>
            </c:forEach>
        </select>
        <select id="menulist">
            <option>
                请选择
            </option>
        </select>
    </body>
    

    [/code]

    格式没整理 从记事本拷贝过来的 这里格式乱了.. # 不好意思

    点赞 打赏 评论
  • lizhiyu211 2009-11-30 15:49

    给你一个中国的省份和城市的联动菜单你参考下吧:[code="java"]

    cities = new Object(); cities['北京市']=new Array('北京市区', '北京市辖区'); cities['上海市']=new Array('上海市区', '上海市辖区'); cities['天津市']=new Array('天津市区', '天津市辖区'); cities['重庆市']=new Array('重庆市区', '重庆市辖区'); cities['河北省']=new Array('石家庄', '张家口市', '承德市', '秦皇岛市', '唐山市', '廊坊市', '保定市', '沧州市', '衡水市', '邢台市', '邯郸市'); cities['山西省']=new Array('太原市', '大同市', '朔州市', '阳泉市', '长治市', '晋城市', '忻州地区', '吕梁地区', '晋中市', '临汾地区', '运城地区'); cities['辽宁省']=new Array('沈阳市', '朝阳市', '阜新市', '铁岭市', '抚顺市', '本溪市', '辽阳市', '鞍山市', '丹东市', '大连市', '营口市', '盘锦市', '锦州市', '葫芦岛市'); cities['吉林省']=new Array('长春市', '白城市', '松原市', '吉林市', '四平市', '辽源市', '通化市', '白山市', '延边朝鲜族自治州'); cities['黑龙江省']=new Array('哈尔滨市', '齐齐哈尔市', '黑河市', '大庆市', '伊春市', '鹤岗市', '佳木斯市', '双鸭山市', '七台河市', '鸡西市', '牡丹江市', '绥化市', '大兴安'); cities['江苏省']=new Array('南京市', '徐州市', '连云港', '宿迁市', '淮阴市', '盐城市', '扬州市', '泰州市', '南通市', '镇江市', '常州市', '无锡市', '苏州市'); cities['浙江省']=new Array('杭州市', '湖州市', '嘉兴市', '舟山市', '宁波市', '绍兴市', '金华市', '台州市', '温州市', '丽水地区'); cities['安徽省']=new Array('合肥市', '宿州市', '淮北市', '阜阳市', '蚌埠市', '淮南市', '滁州市', '马鞍山市', '芜湖市', '铜陵市', '安庆市', '黄山市', '六安市', '巢湖市', '池州地区', '宣城地区'); cities['福建省']=new Array('福州市', '南平市', '三明市', '莆田市', '泉州市', '厦门市', '漳州市', '龙岩市', '宁德市'); cities['江西省']=new Array('南昌市', '九江市', '景德镇市', '鹰潭市', '新余市', '萍乡市', '赣州市', '上饶地区', '抚州地区', '宜春地区', '吉安地区'); cities['山东省']=new Array('济南市', '聊城市', '德州市', '东营市', '淄博市', '潍坊市', '烟台市', '威海市', '青岛市', '日照市', '临沂市', '枣庄市', '济宁市', '泰安市', '莱芜市', '滨州地区', '菏泽地区'); cities['河南省']=new Array('郑州市', '三门峡市', '洛阳市', '焦作市', '新乡市', '鹤壁市', '安阳市', '濮阳市', '开封市', '商丘市', '许昌市', '漯河市', '平顶山市', '南阳市', '信阳市', '省直辖行政单位', '周口地区', '驻马店地区'); cities['湖北省']=new Array('武汉市', '十堰市', '襄攀市', '荆门市', '孝感市', '黄冈市', '鄂州市', '黄石市', '咸宁市', '荆州市', '宜昌市', '省直辖行政单位', '恩施土家族苗族自治州', '襄樊市'); cities['湖南省']=new Array('长沙市', '张家界市', '常德市', '益阳市', '岳阳市', '株洲市', '湘潭市', '衡阳市', '郴州市', '永州市', '邵阳市', '怀化市', '娄底市', '湘西土家族苗族自治州'); cities['广东省']=new Array('广州市', '清远市', '韶关市', '河源市', '梅州市', '潮州市', '汕头市', '揭阳市', '汕尾市', '惠州市', '东莞市', '深圳市', '珠海市', '江门市', '佛山市', '肇庆市', '云浮市', '阳江市', '茂名市', '湛江市'); cities['海南省']=new Array('海口市', '三亚市', '省直辖行'); cities['四川省']=new Array('成都市', '广元市', '绵阳市', '德阳市', '南充市', '广安市', '遂宁市', '内江市', '乐山市', '自贡市', '泸州市', '宜宾市', '攀枝花市', '巴中地区', '达川市', '资阳地区', '眉山地区', '雅安地区', '阿坝藏族羌族自治州', '甘孜藏族自治州', '凉山彝族自治州'); cities['贵州省']=new Array('贵阳市', '六盘水市', '遵义市', '毕节地区', '铜仁地区', '安顺地区', '黔东南苗族侗族自治地区', '黔南布依族苗族自治区', '黔西南布依族苗族自治州'); cities['云南省']=new Array('昆明市', '曲靖市', '玉溪市', '丽江地区', '昭通地区', '思茅地区', '临沧地区', '保山地区', '德宏傣族景颇族自治州', '怒江僳僳族自治州', '迪庆藏族自治州', '大理白族自治州', '楚雄彝族自治州', '红河哈尼族自治州', '文山壮族自治州', '西双版纳傣族自治州'); cities['陕西省']=new Array('西安市', '延安市', '铜川市', '渭南市', '咸阳市', '宝鸡市', '汉中市', '榆林市', '商洛地区', '安康地区'); cities['甘肃省']=new Array('兰州市', '嘉峪关市', '金昌市', '白银市', '天水市', '酒泉地区', '张掖地区', '武威地区', '庆阳地区', '平凉地区', '定西地区', '陇南地区', '临夏回族自治州', '甘南藏族自治州'); cities['青海省']=new Array('西宁市', '海东地区', '西宁市', '海北藏族', '海南藏族', '黄南藏族', '果洛藏族', '玉树藏族', '海西蒙古'); cities['内蒙古自治区']=new Array('呼和浩特', '包头市', '乌海市', '赤峰市', '呼伦贝尔盟', '兴安盟', '哲里木盟', '锡林郭勒盟', '乌兰察布盟', '鄂尔多斯市', '巴彦淖尔盟', '阿拉善盟'); cities['广西壮族自治区']=new Array('南宁市', '桂林市', '柳州市', '梧州市', '贵港市', '玉林市', '钦州市', '北海市', '防城港市', '南宁地区', '百色地区', '河池地区', '柳州地区', '贺州地区'); cities['西藏自治区']=new Array('拉萨市', '那曲地区', '昌都地区', '林芝地区', '山南地区', '日喀则', '阿里地区'); cities['宁夏回族自治区']=new Array('银川市', '石嘴山市', '吴忠市', '固原地区'); cities['新疆维吾尔自治区']=new Array('乌鲁木齐市', '克拉玛依市', '自治区直辖行政单位', '喀什地区', '阿克苏地区', '和田地区', '吐鲁番地区', '哈密地区', '克孜勒苏柯尔克孜', '博尔塔拉蒙古自治州', '昌吉回族自治州', '巴音郭楞蒙古自治州', '伊犁哈萨克自治州', '伊犁地区', '塔城地区', '阿勒泰地区'); function set_city(province, city) { var pv, cv; var i, ii; pv=province.value; cv=city.value; city.length=1; if(pv=='0') return; if(typeof(cities[pv])=='undefined') return; //if(typeof(cities[pv])=='undefined') //{ //city.style.display = "none"; //return; //} //city.style.display = ""; for(i=0; i<cities[pv].length; i++) { ii = i+1; city.options[ii] = new Option(); city.options[ii].text = cities[pv][i]; city.options[ii].value = cities[pv][i]; } }


    全部省
    北京市
    上海市
    天津市
    重庆市
    河北省
    山西省
    辽宁省
    吉林省
    黑龙江省
    江苏省
    浙江省
    安徽省
    福建省
    江西省
    山东省
    河南省
    湖北省
    湖南省
    广东省
    海南省
    四川省
    贵州省
    云南省
    陕西省
    甘肃省
    青海省
    内蒙古自治区
    广西壮族自治区
    西藏自治区
    宁夏回族自治区
    新疆维吾尔自治区
    台湾
    香港
    澳门


    全部城市-->

    [/code]

    点赞 打赏 评论

相关推荐 更多相似问题