1. 分页实现:将分页所需的相关页面信息封装成一个PageView(JavaBean),在Action中调用ProcessDefinitionService接口获取PageView,并将PageView放置在request作用域中;在Service层实现ProcessDefinitionService接口ProcessDefinitionServiceImpl,在ProcessDefinitionServiceImpl中查询数据库获取总记录数时需要注意查询的ProcessDefinition需要写全类名(因为Jbpm框架默认设置auto-import属性为false);Hibernate查询出的结果是Object型,这时总记录数需要int型,这时需要将Object型转换为Number型,再调用intValue()方法获取所需int型的总记录数值。
2. 复习一点:Hibernate通过调用setFirstResult()和setMaxResult()方法来进行分页显示数据;MaxResult为每页显示的记录条数pageSize
3. 分页客户端验证页码:JavaScript中有一个方法isNaN(pageNum),用于判断传入的参数pageNum是否是一个数字
4. 分页的实现步骤:
1) jsp中代码,要显示的数据用el
2) 定义pageView对象,包含页面中用到的全部属性
3) 在service中准备PageView
4) 重用:页面使用静态包含;分页的计算逻辑放到pageView对象中
5. JBPM所有实体的主键类型均为Long型
6. 部署流程定义时需要使用parseParZipInputStream()方法传入ZipInputStream以解析生成ProcessDefinition,ZipInputStream由PdActionForm中的FormFile调用getInputStream()方法获取的InputStream包装得来
7. 查看流程文件:流程定义调用getFileDefinition()方法,getBytes()方法,指定要查看的流程文件可以得到流程文件的byte[],再调用response.getOutputStream().write()将byte[]写出
注意:需要调用response的setContentType()方法设置内容属性和charset值.
8. 要正常显示xml文件的内容,不能使用模态窗口,需要使用window.open()打开一个新的浏览器窗口,并为其指定相应的样式,以达到模态窗口的效果
9. 完成流程定义下载时,需要注意对Url进行编码:zipName = URLEncoder.encode(zipName, "utf-8");设置response下载文件的响应头:response.addHeader("Content-Disposition", "attachment; filename=" + zipName);