分页器 部分

package  org.vanpull.frame.commons.page;

import  java.lang.reflect.Method;

/** */ /**
 * 
 * <p>
 * Title:[得到分页内容]
 * </p>
 * <p>
 * Description: [得到pageBar内容]
 * </p>
 * <p>
 * Copyright 2009 Huyvanpull Co., Ltd.
 * </p>
 * <p>
 * All right reserved.
 * </p>
 * 
 * 
@version 1.0
 * 
 * <p>
 * Created by [Huyvanpull] [Jul 1, 2009]
 * </p>
 * <p>
 * Midified by [修改人] [修改时间]
 * </p>
 * 
 
*/

public   class  PageBarContent
{
    
/** *//** 验证ThemeClass */
    
private final String packageReg = "^([a-z]{1,32}\\.){1,32}([A-Z](\\w){1,32})$";
    
    
public String getThemeHtml(PageBarBean pgb)
    
{
        
return this.getThemeHtml(pgb.getTheme(), pgb.getTotalRows(), pgb
                .getPageSize(), pgb.getTotalPages(), pgb.getCurrentPage(), pgb
                .getFirstPageURL(), pgb.getBackPageURL(), pgb.getNextPageURL(),
                pgb.getEndPageURL());
    }

    
    
/** *//**
     * 
     * <p>
     * Description:[本方法用于得到指定theme的HTML代码,用户可以自定义theme]
     * </p>
     * <p>
     * Created by [Huyvanpull] [May 12, 2009]
     * </p>
     * <p>
     * Midified by [修改人] [修改时间]
     * </p>
     * 
     * 
@param pageBarBean
     
*/

    @SuppressWarnings(
"unchecked")
    
public String getThemeHtml(String theme, int totalRows, int pageSize,
            
int totalPages, int currentPage, String firstPageUrl,
            String backPageUrl, String nextPageUrl, String lastPageUrl)
    
{
        ThemeMapping themeMapping 
= new ThemeMapping();
        String themeClassName 
= null;
        
/** *//** 如果themeName包含在themeMapping内,那么得到className */
        
if (themeMapping.isConstaint(theme))
        
{
            themeClassName 
= themeMapping.getThemeClass(theme);
        }

        
/** *//**
         * 如果themeName不包含在themeMapping内,
         * 那么认为theme是一个用户提供的已经实现ThemeInterface接口的实现类
         
*/

        
else
        
{
            themeClassName 
= theme;
        }

        String barHTML 
= "";
        
/** *//** 用正则表达试匹配,是否是一个合法的类路径 */
        
if (!themeClassName.matches(this.packageReg))
        
{
            barHTML 
= "ThemeClass类路径不合法";
            
return barHTML;
        }

        
/** *//** 使用反射机制得到ThemeClass的分页码代码开始 *************** */
        
/** *//** 指定方法的参数列表 ************************* */
        Class[] types 
= int.classint.classint.classint.class,
                String.
class, String.class, String.class, String.class }
;
        
try
        
{
            
/** *//** 通过反射得到指定的Class **************** */
            Class clazz 
= Class.forName(themeClassName);
            
/** *//** 通过Class得到指定的方法 **************** */
            Method method 
= clazz.getDeclaredMethod("getPageBarHtml", types);
            
/** *//** 通过反射得调用方法得到结果 ************** */
            barHTML 
= (String) method.invoke(clazz.newInstance(), totalRows,
                    pageSize, totalPages, currentPage, firstPageUrl,
                    backPageUrl, nextPageUrl, lastPageUrl);
        }

        
/** *//** 找不到指定的类时异常 ********** */
        
catch (ClassNotFoundException cnfe)
        
{
            barHTML 
= "没有找到类" + themeClassName;
        }

        
/** *//** 找不到实现接口的方法时 ******** */
        
catch (NoSuchMethodException nsme)
        
{
            barHTML 
= themeClassName + "不是ThemeInterface的实现类";
        }

        
/** *//** 其它异常,供用户修改 ********** */
        
catch (Exception exce)
        
{
            barHTML 
= exce.toString();
        }

        
/** *//** 使用反射机制得到ThemeClass的分页码代码结束 *************** */
        
return barHTML;
    }

}

你可能感兴趣的:(html)