传智播客 2010-02-19 复习
今天复习知识点:
一.工作流,审批流程。举例,比如请假流程:
提交申请-->部门经理 -->
后面是一层一层的审批...
审批流转就是把单位内部的审批电子化。经过的环节和人不一样
四点要求:
流程定义:
二.分页设计
<a href="javascript:gotoPage(1)">[首页]</a>
<c:if test="${pageView.currentPage gt 1}">
<a href="javascript:gotoPage(${pageView.currentPage-1})">[上一页]</a>
</c:if>
<c:if test="javascript:gotoPage(${pageView.currentPage lt pageView.totalPage})">
<a href="javascript:gotoPage(${pageView.currentPage-1})">[下一页]</a>
</c:if>
<a href="javascript:gotoPage(${totalPage})">[尾页]</a>
<c:forEach begin="${startPageIndex}" end="endPageIndex" var="n">
${n}
</c:forEach>
转到:<input type="text" id="txtPageNum"/>
<input type="button" value="Go" onclick="gotoPage(document.getElementById('txtPageNum').value"/>
<script type="text/javascript">
function gotoPage(pageNum){
if(isNaN(pageNum)){
alert("请输入正确的页码");
document.getElementById('txtPageNum').focus();
return false;
}
window.location.href = getPageViewUrl(pageNum);
}
//提供分页用的地址。由具体的引用页面提供
function getPageViewUrl(pageNum){
return "/xxx.do?pageNum="+pageNum;
}
</script>
3.Hibernate的分页
getSession().createQuery(//
"SELECT COUNT(pd) FROM org.jbpm.ProcessDefinition pd")//
.uniqueResult();
getSession().createQuery(//
"FROM ProcessDefinition")//
.setFirstResult(firstResult)//
.setMaxResults(pageSize)//
.list();
4.表单模板设计
表单定义(FormDefinition)
表单名称
所用流程
表单代码文件路径
保存数据:不能用ActionForm,
表单中要填写的数据量,数据类型未知。用原始方法
for(Enumeration<String> e= request.getParameterNames();e.hasMoreElements();){
String name = e.nextElement();
String value=request.getParameter(name);
}但是我们无法解决2个问题:
1.保存成什么类型
2.保存哪些参数值?
解决办法:
Map<String,Class> fieldDefinitionList = new HashMap<String,Class>();
之后在Action中可以用
for(String name:formDefinition.getFieldDefinitionList().keySet()){
String stringValue = request.getParameter(name);
Class clazz=formDefinition.getFieldDefinitionList().get(name);
}
保存一次填写的所有信息,就是表单实例,就是表单定义的具体实现
明天就是JPA了,要好好休息,继续努力,春节已过去,踏上新的起点!