1. 说明与编写规范

    1. java 文件为 page 文件里指定的 class 文件
    2. java 文件里定义 abstract 的 getter&setter 方法必须在 page 文件里有对应的属性定义
    3. java 文件里监听方法是指:有且只能有一个参数 IRequestCycle cycle,返回值为 void 的方法,如:定义:public void queryCusts(IRequestCycle cycle) throws Exception
    4. java 文件里所有监听方法都需要抛出异常(在方法定义里throws Exception),否则无法统一处理异常信息
    5. java 文件必须是 com.ailk.web.BasePage 的子类
    6. java 文件必须使用 utf-8 的文件格式
  2. 标准模板

    package com.ailk.demo.view;
    
    import org.apache.tapestry.IRequestCycle;
    import com.ailk.web.BasePage;
    
    public abstract class CustList extends BasePage {
    	
    	public abstract void setCustName(String custName);
    	
    	public void queryCusts(IRequestCycle cycle) throws Exception {
    	}
    }
    
  3. 基类常用 API

    /**
     * 获取请求上下文对象
     * 
     * @return
     */
    public BaseContext getContext()
    
    /**
     * 获取配置的语言环境
     * @return
     */
    public String getLanguage()
    
    /**
     * 获取配置的字符集环境
     * @return
     */
    public String getCharset()
    
    /**
     * 是否为生产模式
     * @return
     */
    public boolean isProduction()
    
    /**
     * 是否为页面流
     * @return
     */
    public boolean isPageFlow()
    
    /**
     * 获取页面流配置
     * @return
     */
    public FlowConfig getConfig()
    
    /**
     * 获取DateFormat对象
     * @param format
     * @return
     */
    public Format getDateFormat(String format)
    
    /**
     * 日期转换
     * @param format
     * @param value
     * @return
     */
    public String formatDate(String format, String value)
    
    /**
     * 获取DecimalFormat对象
     * @param format
     * @return
     */
    public Format getDecimalFormat(String format)
    
    /**
     * 获取DecimalFormat对象
     * @param format
     * @return
     */
    public Format formatDecimal(String format)
    
    /**
     * 编码翻译
     * @param code
     * @return
     */
    public String getLabel(String code)
    
    /**
     * 编码翻译
     * @param code
     * @return
     */
    public String getLabel(String code, String[] params)
    
    /**
     * 获取客户端IP,依赖具体的环境,如四层交换、Apache、WebLogicProxy等
     * @return
     */
    public String getClientIP()
    
    /**
     * 获取Mac地址,依赖客户端工具,从Http头里取Client-Mac
     * @return
     */
    public String getClientMac()
    
    /**
     * 参数翻译
     * @param source
     * @param names
     * @param values
     * @param key
     * @param defval
     * @return
     */
    public String translate(IDataBus source, String[] names, String[] values, String key, String defval)
    
    /**
     * 参数翻译
     * @param source
     * @param names
     * @param values
     * @param key
     * @return
     */
    public String translate(IDataBus source, String[] names, String[] values, String key)
    
    /**
     * 参数翻译
     * @param source
     * @param name
     * @param value
     * @param key
     * @param defval
     * @return
     */
    public String translate(IDataBus source, String name, String value, String key, String defval)
    
    /**
     * 参数翻译
     * @param source
     * @param name
     * @param value
     * @param key
     * @return
     */
    public String translate(IDataBus source, String name, String value, String key)
    
    /**
     * 参数翻译
     * @param source
     * @param key
     * @param defval
     * @return
     */
    public String translate(IDataBus source, String key, String defval)
    
    /**
     * 参数翻译
     * @param source
     * @param key
     * @return
     */
    public String translate(IDataBus source, String key)
    
    /**
     * 参数翻译
     * @param source
     * @param names
     * @param values
     * @param key
     * @param defval
     * @return
     */
    public String translate(List<?> source, String[] names, String[] values, String key, String defval)
    
    /**
     * 参数翻译
     * @param source
     * @param names
     * @param values
     * @param key
     * @return
     */
    public String translate(List<?> source, String[] names, String[] values, String key)
    
    /**
     * 参数翻译
     * @param source
     * @param name
     * @param value
     * @param key
     * @param defval
     * @return
     */
    public String translate(List<?> source, String name, String value, String key, String defval)
    
    
    /**
     * 参数翻译
     * @param source
     * @param name
     * @param value
     * @param key
     * @return
     */
    public String translate(List<?> source, String name, String value, String key)
    
    /**
     * 参数翻译
     * @param source
     * @param key
     * @param defval
     * @return
     */
    public String translate(List<?> source, String key, String defval)
    
    /**
     * 参数翻译
     * @param source
     * @param key
     * @return
     */
    public String translate(List<?> source, String key)