1. 应用上下文对象

    1. 废弃之前的 PageData 对象,通过 IAppContext 替换之,是从前台页面到 Bean,DAO 到接口调用的上下文对象;

    2. IAppContext 提供 Session,Visit,Ajax,数据库连接,请求参数获取等方法,在 View 层直接使用 ctx 对象,在 Bean,DAO,接口层使用 IAppContext;

      IAppContext 的 API 说明:

      方法名称 public HttpSession getSession(boolean create);
      方法描述 获取 Session,仅在登录、登出时使用
      方法名称 public IDBConn getDBConn();
      方法描述 获取数据库连接,在 DAO 底层使用,也可在需要单独事务的情况下使用;
      方法名称 public IData getData();
      方法描述 获取上下文数据;
      方法名称 public IData getData(String group, boolean istrim);
      方法描述 获取上下文数据的子集,group 是 key 的前辍,istrim 判断是否需要去掉前辍 group;
      方法名称 public IData getData(String group);
      方法描述 获取上下文数据的子集,group 是 key 的前辍,不去掉前辍 group;
      方法名称 public String getParameter(String name);
      方法描述 获取上下文数据里的某个 key 的值;
      方法名称 public String getParameter(String name, String defval);
      方法描述 获取上下文数据里的某个 key 的值,如果为 null 则返回 defval;
      方法名称 public String[] getParameters(String name);
      方法描述 获取上下文数据里的某个 key 的数组;
      方法名称 public void setAjaxDataset(IDataset ajaxDataset);
      方法描述 设置 AjaxDataset,仅在 View 层使用,在同一 Listener 里,只能 set 一次,如有多次,仅最后的 set 有效,之前的数据被覆盖;
      方法名称 public IDataset getAjaxDataset();
      方法描述 获取 AjaxDataset,仅在 AjaxService 中使用;
      方法名称 public IAppSession getContext();
      方法描述 获取 Visit 对象,即 application 中配置的<property name="org.apache.tapestry.visit-class">,存放与工号相关的属性数据;
      方法名称 public void setContext(IAppSession session);
      方法描述 设置 Visti 对象,即 application 中配置的<property name="org.apache.tapestry.visit-class">,仅在登录、Servlet、页面初始化中调用,该方法不要轻易使用,容易导致 Session 丢失问题;
      方法名称 public String getRouteEparchy();
      方法描述 获取路由地州,系统默认为工号归属地州,也可手动设置为服务号码归属地州;
      方法名称 public void setRouteEparchy(String routeEparchy);
      方法描述 设置路由地州,系统默认为工号归属地州,也可手动设置为服务号码归属地州;
      方法名称 public String getLoginEpachyId();
      方法描述 设置登录地州,即全省工号登录时选择的登录地州,在路由时,该值比 getRouteEparchy 优先级高;

      AppContext 的 API 说明:

      方法名称 public AppContext()
      方法描述 创建 AppContext,该方法一般在接口调用处使用;
      方法名称 public AppContext(IRequestCycle cycle)
      方法描述 创建 AppContext,该方法在 View 的底层使用;
      方法名称 public AppContext(HttpServletRequest request)
      方法描述 创建 AppContext,该方法在 View 的底层使用;
      方法名称 public HttpServletRequest getRequest()
      方法描述 获取请求对象;
      方法名称 public void setData(IData data)
      方法描述 设置上下文数据;
      方法名称 public void setData(IData data, String group)
      方法描述 设置上下文数据,key 的前辍为 group
      方法名称 public void setParameter(String name, String value)
      方法描述 设置上下文数据;
      方法名称 public void setParameters(String name, String[] values)
      方法描述 设置上下文数据;
      方法名称 public void setTransfer(String name, String value);
      方法描述 在上下文数据里添加 name=value 的值,若已存在则覆盖;
      方法名称 public void setTransfers(String name, String[] values);
      方法描述 在上下文数据里添加 name=value 的值,若已存在则覆盖;
      方法名称 public void removeTransfer(String name)
      方法描述 在上下文数据里删除 name 的值,若已存在则覆盖;
      方法名称 public IData getReceiveData()
      方法描述 获取当前请求的数据;
      方法名称 public String getRemoteAddr()
      方法描述 获取客户端 IP 地址,注意通过 VPN 连接的只能取到 VPN 地址,取不到真实的客户端 IP;
      方法名称 public Pagination getPagination()
      方法描述 获取分页对象;
      方法名称 public int getPageSize()
      方法描述 获取分页对象的每页条数;
      方法名称 public int getDefaultPageSize()
      方法描述 获取分页对象的默认每页条数,配置在 global.properties 中的 navbar.pagesize=20;
      方法名称 public int getMaxPageSize()
      方法描述 获取分页对象的默认每页条数,配置在 global.properties 中的 navbar.maxpagesize=500;
      方法名称 public void setAjaxString(String value)
      方法描述 设置 Ajax 返回的对象为 String;
      方法名称 public void setAjaxData(IData data)
      方法描述 设置 Ajax 返回的对象为 IData;
      方法名称 public void setAjaxDataset(IDataset dataset)
      方法描述 设置 Ajax 返回的对象为 IDataset;