![]() |
|
Spaces home 王 府-前PhotosProfileFriendsMore ![]() | ![]() |
|
王 府-前August 23 unix环境下标准C实现的遍历某个文件夹下面所有文件
我嘀新博客(toyota2006.javaeye.com),欢迎大家光临指导! toyota2006.javaeye.com September 26 ET Limit方式的分页查询1.Limit 默认的情况下eXtremeTable取得所有的结果集然后处理Beans集合,这样的好处是 你可以随意进行排序、过滤和分页操作。 2.创建Limit
Context context = new HttpServletRequestContext(request);
LimitFactory limitFactory = new TableLimitFactory(context);
Limit limit = new TableLimit(limitFactory);
Context context = new HttpServletRequestContext(request); LimitFactory limitFactory = new TableLimitFactory(context, tableId); Limit limit = new TableLimit(limitFactory); limit.setRowAttributes(totalRows, DEFAULT_ROWS_DISPLAYED); 3. 前台jsp页面中ec标莶写法: <ec:table items="userlist" var="u" action="/pageAction.do" title="后台用户管理——管理用户" retrieveRowsCallback="limit" width="80%" rowsDisplayed="3" form="" > <ec:row> ... ... </ec:row> </ec:table> request.setAttribute("userlist", userlist);
4.实例:本实例是ec结合Struts和Hibernate进行分页. public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { UserDAO userDAO = (UserDAO) getBean("userDAO"); Limit limit = ExtremeTablePage.getLimit(request,defaultPageSize); PageBean page = new PageBean(); page.setPageSize(limit.getCurrentRowsDisplayed()); //ec通过limit对象传递pageSize给PageBean page.setPage(limit.getPage());//ec通过limit对象传递pageNo给PageBean List list = userDAO.findAllUser(page); request.setAttribute("userlist", list); request.setAttribute("totalRows", new Integer(page.getCount())); return mapping.findForward("userlist"); } static public Limit getLimit(HttpServletRequest request,int defaultPageSize) { Context context = new HttpServletRequestContext(request); LimitFactory limitFactory = new TableLimitFactory(context); TableLimit limit = new TableLimit(limitFactory); limit.setRowAttributes(Integer.MAX_VALUE, defaultPageSize); return limit; } public class PageBean { private int count = 0; // 记录总数 private int pageSize = 10; // 每页显示记录数 private int pageCount = 0; // 总页数 private int page = 1; // 当前页数 . . . public int getCount() { return count; } public void setCount(int count) { if (pageSize != 0) { pageCount = count / pageSize; if (count % pageSize != 0) { pageCount++; } } this.count = count; } public int getPage() { return page; } public void setPage(int page) { this.page = page; } public int getPageCount() { return pageCount; } public void setPageCount(int pageCount) { this.pageCount = pageCount; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } . . . } dao层使用PageBean对象进行查询。 September 25 AJAX方式的ET的使用1.DWR配置和使用设置DWR的使用是简单的: 在WEB-INF目录下创建一个dwr.xml文件 <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd"> <dwr> <allow> <create creator="new" javascript="Assembler"> <param name="class" value="com.systop.ec.Assembler" /> <include method="getTable" /> </create> </allow> <signatures> <![CDATA[ import java.util.Map; import java.util.List; import com.systop.ec.Assembler; import javax.servlet.http.HttpServletRequest; Assembler.getTable(Map<String, List> parameterMap, HttpServletRequest request); ]]> </signatures> </dwr> 2.创建POJO DWR使用(works with)POJOs。这个非常符合我们的需要,因为eXtremeTable有足够的API使用Jsp标签来构造表。 public class Assembler { private Object build(TableModel model, List pres) throws Exception { Table table = model.getTableInstance(); table.setTableId("assembler"); table.setItems(pres); table.setAction(model.getContext().getContextPath() + "/userAction.do"); table.setTitle("ET+AJAX"); table.setImagePath(model.getContext().getContextPath()+"/images/table/*.gif"); table.setRowsDisplayed(3); table.setOnInvokeAction("buildTable('assembler')"); model.addTable(table); Row row = model.getRowInstance(); row.setHighlightRow(Boolean.FALSE); model.addRow(row); Column columnName = model.getColumnInstance(); columnName.setProperty("name"); model.addColumn(columnName); Column columnNickName = model.getColumnInstance(); columnNickName.setProperty("nickname"); model.addColumn(columnNickName); Column columnTerm = model.getColumnInstance(); columnTerm.setProperty("term"); model.addColumn(columnTerm); return model.assemble(); } /** * 这个方法调用比较频繁,它执行双重职责。它需要被Controller(如果使用Spring的话)在第一次调用, * 如果使用Struts就等同于Action类。 随后,当使用AJAX时,这个方法也需要被调用,但是这次将传入一个 * 定制的parameterMap。parameterMap将包含eXtremeTable使用AJAX需要的所有参数。当你看了 Controller * 和JSP后,这点将更加清晰。 * @param parameterMap * @param request * @return */ public String getTable(Map parameterMap, HttpServletRequest request) { WebApplicationContext webApplicationContext = WebApplicationContextUtils .getWebApplicationContext(request.getSession().getServletContext()); PresidentsDao presidentsDao = (PresidentsDao) webApplicationContext.getBean("presidentsDao"); List presidents = presidentsDao.getPresidents(); Context context = null; if (parameterMap == null) { context = new HttpServletRequestContext(request); } else { context = new HttpServletRequestContext(request, parameterMap); } TableModel model = new TableModelImpl(context); try { return build(model, presidents).toString(); } catch (Exception e) { e.printStackTrace(); } return ""; } } 3.创建Actionpublic ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { Assembler assembler = new Assembler(); Object viewData = assembler.getTable(null, request); request.setAttribute("assembler", viewData); return mapping.findForward("userList"); } Action在被第一次调用时来构建表。它调用POJO并将表传给request。注意空值(null)如何使用parameterMap传输。 4.创建JSP通过引入(importing)合适的javascript文件来开始构建JSP页面。唯一需要包含进工程的javascript文件 <script type="text/javascript" src="<c:url value="/dwr/interface/Assembler.js"/>"></script> <script type="text/javascript" src="<c:url value="/dwr/engine.js"/>"></script> <script type="text/javascript" src="<c:url value="/dwr/util.js"/>"></script> <script type="text/javascript" src="<c:url value="/js/extremecomponents.js"/>"></script> 接着,插入钩子(hook)来显示表,div被用来调用innerHtml并构建新的标签。 <div id="tableDiv"> <c:out value="${assembler}" escapeXml="false"/> </div> function buildTable(form) {
var parameterMap = getParameterMap(form);
Assembler.getTable(parameterMap, showTable);
}
function showTable(table) {
document.getElementById('tableDiv').innerHTML=table;
}
</script>getParameterMap()方法包含在extremecomponents.js文件中,将的到所有的form参数。你需要传入一个 form id的参照。 参考:http://www.blogjava.net/lucky/archive/2006/03/27/37623.html eXtreme Table 的基本用法及配制1。简介: Extreme Table 是ExtremeCompontents(Home Page:http://www.extremecomponents.org? 2。基本配制: 1)首先下载发行包 http://sourceforge.net/projects/extremecomp 在extremetable.properties里一般只写需要修改的文件: table.filterable=false table.imagePath=/images/table/*.gif table.locale=zh_CN table.view.html=org.extremecomponents.table.view.CompactView row.highlightRow=true column.format.date=yyyy-MM-dd column.format.currency=###,###,###,###,#00.00 在web.xml中加上: <context-param> <param-name>extremecomponentsPreferencesLocation</param-name> <param-value>/extremetable.properties</param-value> </context-param> 3. 测试:
|
|
|||||||||||
|
|