通用分页实现及其OO设计探讨
3. 分页辅助类
ViewPageHelper.java/**//**
* 分页辅助类,用于减化Controller中的代码
* @author yuanguangdong
* date: Oct 22, 2006
*/
public class ViewPageHelper ...{
private static final int FIRST_PAGE_VALUE = 1;
![]()
private static final int PREVIOUS_PAGE_VALUE = 2;
![]()
private static final int NEXT_PAGE_VALUE = 3;
![]()
private static final int LAST_PAGE_VALUE = 4;
![]()
private static final int SPECIAL_PAGE_VALUE = 5;
![]()
public static final String FIRST_PAGE = "FIRST_PAGE";
![]()
public static final String PREVIOUS_PAGE = "PREVIOUS_PAGE";
![]()
public static final String NEXT_PAGE = "NEXT_PAGE";
![]()
public static final String LAST_PAGE = "LAST_PAGE";
![]()
public static final String SPECIAL_PAGE = "SPECIAL_PAGE";
![]()
/**//**分页动作参数名**/
public static final String PAGE_ACTION = "page_action";
![]()
/**//**分页对象属性名**/
public static final String SESSION_PAGE = "session_page";
![]()
/**//**页号参数名**/
public static final String PAGE_NO = "page_no";
![]()
private static Map actionMap = new HashMap();
static ...{
actionMap.put(FIRST_PAGE, new Integer(FIRST_PAGE_VALUE));
actionMap.put(PREVIOUS_PAGE, new Integer(PREVIOUS_PAGE_VALUE));
actionMap.put(NEXT_PAGE, new Integer(NEXT_PAGE_VALUE));
actionMap.put(LAST_PAGE, new Integer(LAST_PAGE_VALUE));
actionMap.put(SPECIAL_PAGE, new Integer(SPECIAL_PAGE_VALUE));
}
/**//**
* 执行分页动作
* @param page 分页对象
* @param action 分页动作参数
* @param pageIndex 页号
*/
public static void doAction(ViewPage page, String action, int pageIndex) ...{
int actionIndex = 0;
if (page == null) ...{
throw new NullPointerException("Page对象null");
}
if (action == null || "".equals(action)) ...{
throw new IllegalArgumentException("无效的分页动作参数null");
}
action = action.toUpperCase();
if (!actionMap.containsKey(action)) ...{
throw new UnsupportedOperationException("不支持的分页动作参数:" + action);
}
Integer index = (Integer) actionMap.get(action);
actionIndex = index.intValue();
switch (actionIndex) ...{
case FIRST_PAGE_VALUE:
page.gotoFirstPage();
break;
case PREVIOUS_PAGE_VALUE:
page.gotoPreviousPage();
break;
case NEXT_PAGE_VALUE:
page.gotoNextPage();
break;
case LAST_PAGE_VALUE:
page.gotoLastPage();
break;
case SPECIAL_PAGE_VALUE:
page.gotoPage(pageIndex);
}
}
![]()
public static void doAction(ViewPage page, String action)...{
doAction(page, action, 1);
}
}
0
相关文章
