Ecside介绍

来源:百度文库 编辑:神马文学网 时间:2024/10/01 10:47:05

Ecside介绍

  ECSide是有一个基于jsp tag的开源列表组件. 简单的说,它就是一组可以帮助你快速实现强大的列表的jsp标签. 它的工作原理很简单. 您将要展现的列表的数据集合(Collection),放入request/pagecontext/session内(使用 setAttribute方法.这个工作可以在action/servlet里完成,也可以在jsp页面内完成),然后页面跳转到使用ECSide标签的 jsp页面,此时 ECSide就可以帮助您展现出所需要的列表.

  主要增强的功能:

  1 可设置工具条位置(上下或 不显示)

  2 可设置工具条内容(显示哪些 不显示哪些)

  3 可设置工具条上各个功能按钮的相对位置

  4 增加了调整页大小的选择框,并可自定义选择框内的内容

  5 增加了带有邻近页面的导航条

  6 增加了可跳转到指定页面的跳转框

  7 增加了当前选中行高亮

  8 为ec:table 增加了 excludeParameters 和 includeParameters 属性,可以实现更快捷简便的"参数保留/不保留"功能

  9 可添加自定义的html代码到工具条内 或其他位置

  10 可手动调整列宽

  11 增加了"列表内部滚动条"(实现列表头固定,列表体滚动的功能)

  12 为ec:row和ec:column 添加更多的html事件支持,现支持:onmouserover prefix="ec" %>

  

  

  

  

  

  其次, 构建所需的ec:table, 比如一个日志查询模块的表格如下, 至于每一个EcSide组件tag属性意思可以查看帮助使用文档

  


  

  
  retrieveRowsCallback="limit"

  rowsDisplayed="20"showPrint="true"showTitle="true"

  sortRowsCallback="limit"filterRowsCallback="limit"

  action="LogServlet?status=selectall"useAjax="true"

  pageSizeList="10,20,30,50,100"title="系统日志"showTitle="false"

  xlsFileName="系统日志.xls"csvFileName="系统日志.csv"pdfFileName="系统日志.pdf"

  sortable="true"filterable="true"resizeColWidth="true">

  

  

  

  

  

  

  

  

  

  

  

  


  

  

  
  style="width:100%;"name=""/>

  

  

  

  
  style="width:100%;"name="" />

  

  一般我们还会带查询功能, 该组件支持AJAX方式的查询, 使用ECSideUtil.queryECForm, 其中listFormName为组件Name, 默认为ec

  

  最后, 就是由后台相关的Servlet或Action提供组件所需数据, 供Grid呈现,在中action指定提供数据的url, 如action="LogServlet?status=selectall",

  对于大数据量的项目最好写个存储过程支持对数据的分页显示. 后台大致代码如下, 如在Servlet的doPost方法中处理

  publicvoid doPost(HttpServletRequest request, HttpServletResponse response)

  throws ServletException, IOException {

  String path="Admin/error.htm";

  String status = request.getParameter("status");

  if(status != null)

  {

  if("selectall".equals(status) && DAOFactory.CheckUser(request))

  {

  List all = null;

  int currentPage = 1;

  int size = 50;

  int allRecords = 0;

  LogDAO logdao = DAOFactory.getLogDAOInstance();

  Limit limit = RequestUtils.getLimit(request);

  Sort sort = limit.getSort();

  Map sortValueMap = sort.getSortValueMap();

  FilterSet filterSet = limit.getFilterSet();

  Map filterPropertyMap = filterSet.getPropertyValueMap();

  QueryItem queryCondition = new QueryItem();

  queryCondition.setType(request.getParameter("txtLogType"));

  queryCondition.setBeginDate(request.getParameter("dt1"));

  queryCondition.setEndDate(request.getParameter("dt2"));

  try

  {

  allRecords = logdao.getAllCount(sortValueMap, filterPropertyMap, queryCondition);

  int[] rowStartEnd=RequestUtils.getRowStartEnd(request, allRecords, size);

  if(size > allRecords)

  {

  currentPage = 1;

  }

  else

  {

  currentPage = limit.getPage();

  }

  all = logdao.findAll(rowStartEnd[1] - rowStartEnd[0], currentPage, sortValueMap, filterPropertyMap, queryCondition);

  }

  catch(Exception ex)

  {

  }

  request.setAttribute("all", all);

  path="Admin/systemLog.jsp";

  }

  }

  // 根据path路径进行跳转

  request.getRequestDispatcher(path).forward(request , response);

  }

  页面最终呈现效果如下