论坛首页 入门技术论坛

show下我的分页类

浏览 21697 次
该帖已经被评为新手帖
作者 正文
   发表时间:2008-11-18  
bubble 写道
支持一下楼主,给你贴一个我最近写的一个分页:
package org.base;

import java.util.List;
/**
 * 
 * @author Bubble zheshexian@gmail.com
 *
 */
public class Page {

....



呵呵,兄弟,
俺献丑了,
0 请登录后投票
   发表时间:2008-11-18  
上一站,火星 写道
有啥好show的?写的这么烂


给人家留点面子唉,呵呵,看得出来工作不久,态度很好,我觉得这已经足够了,设计上的不足要加强学习了
0 请登录后投票
   发表时间:2008-11-18  

my pagination source code

package commons.param;

import java.io.Serializable;

import java.util.List;

import commons.util.Assertion;

public class Pagination implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = -8771057905059891041L;

	public static final int DEFAULT_SIZE = 20;

	/** items */
	private List items;

	/** index */
	private int index = 1;

	/** size */
	private int size = DEFAULT_SIZE;

	/** count */
	private int count = -1;

	/** count or not */
	private boolean counted = false;

	public Pagination() {

	}

	public Pagination(int size) {
		Assertion.isPositive(size,
				"The [size] argument should be greater than zero.");
		this.size = size;
	}

	public Pagination(List items, int count, int index, int size) {
		this.setItems(items);
		this.setCount(count);
		this.setIndex(index);
		this.setSize(size);
	}
	/**
	 * item count in current page
	 * 
	 * @return
	 */
	public int getLength() {
		if (null != items) {
			return items.size();
		}
		return 0;
	}

	//setter/getter of private members
	//...

}



//Assertion
package commons.util;

import org.springframework.util.Assert;

public class Assertion extends Assert {
	//...other Asserts
	public static void isPositive(long value, String message) {
		if (value <= 0) {
			throw new IllegalArgumentException(message);
		}
	}
	//...other Asserts
}


Web browser(IE,FireFox) get response data in json format(generate by freemarker) from server(WebWork)
//pagination.json.ftl
//usage: <#include "/system/support/pagination.json.ftl" />
{
	pagination: {
	<#if pagination ? exists>
		index: ${(pagination.index)?default(1)},
		length: ${(pagination.getLength())?default(0)},
		size: ${(pagination.size)?default(20)},
		count: ${(pagination.count)?default(0)},
		counted: ${(pagination.counted)?string("true","false")}
	<#else>
		index: 1,
		length: 0,
		size: 10,
		count: 0,
		counted: false
	</#if>		
	}
}



render view with js component
function XPagination() {
   //...
}
var xpagination = new XPagination(o.pagination);




0 请登录后投票
   发表时间:2008-11-18  
很糟糕的编码风格
0 请登录后投票
   发表时间:2008-11-18  
@xuming9
1 赞赏搂主晒代码的勇气!
2 分页类应该只是分页参数类,尽量做到简单,不应该耦合HttpServletRequest/HttpServletResponse/DaoFactory


@qianlei007
建议分页参数类不要加入过多其他计算方法,这些方法可由js处理

@simon511
排序可以再加入一个OrderMode之类的类处理,这样底层开放的接口可以灵活些
List find(Pagination pagination,OrderMode orderMode);
List find(Pagination pagination);

欢迎排砖
0 请登录后投票
   发表时间:2008-11-18   最后修改:2008-11-18
my js component screenshot

  • 大小: 6 KB
0 请登录后投票
   发表时间:2008-11-18  
赞扬lz的勇气和精神,但不得不说的是,这段代码真的让人看不下去...
0 请登录后投票
   发表时间:2008-11-19  
感谢楼上提出的意见,争取下次show段让你们满意的代码
0 请登录后投票
   发表时间:2008-11-19  
呵呵
有时候不要直接说别人写的差啊!!
你可以指出别人的不足啊
把你好的贴出来啊!!
别人贴出来也是希望你指点的啊!!!
0 请登录后投票
   发表时间:2008-11-19  
觉得楼主挺好,代码敢秀出来,不然得不到别人的评价,
也就没有改进的机会了,试问工作的时候有多少同事会有时间去提醒你,如果他们看不懂的代码估计就直接鄙视你一翻了。
再乱的代码也要看,不然没办法啊。
在修改旧系统的时候,我就接触了好多风格迥异的代码,
看的也很郁闷,不过看久了就基本了解当时写代码那个人的风格了
不知不觉在他写的代码上修改,风格几乎和原来的一样
有点郁闷,又没太多时间重写。
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics