今天继续学习oa,学习jbpm的时候已对员工请假流程有所了解,今天汤老师对在oa项目中加入员工请假流程进行了讲解,讲课过程中汤老师还提到了学习方法的问题,老师让做的练习做不出不要紧,一定要思考,然后跟着老师思路听老师的讲解,理解老师的思路,然后再自己做一遍,做的多了,自然就掌握了。不要急,要有好的心态,才能有进步。总结一下今天学习的重点和遇到的问题。
一些流程都是很相似的,重点掌握一个即可,其他的流程,如报销,与请假流程的区别只是表单不同,审批的任务与审批人不同。总体说都是由一个提交表单引导启动一个流程实例,经过层层审批后完成。
请假流程:员工填写表单 --> 部门经理审批 --> 总经理审批 --> 流程结束。
1,每个审批的节点都是由相应职务的领导进行审批。
如果指定职务上只有一个人,就直接由他审批(个人任务);
如果有多个,只需其中一个进行审批即可(组任务)。
2,审批是指,选择是否通过和填写相应的审批意见。
要能看到原始的业务表单的内容;
要能看到这个流程中之前的审批意见。
3,在每个审批任务中,如果审批通过,流程继续正常执行,
正常执行完毕后,业务表单为 "已通过" 状态;
如果审批未通过,则流程直接结束,业务表单为 "未通过" 状态。
用户的任务列表:
未办理的任务列表(包组任务与个人任务),已办理的任务列表。
要显示信息:任务名称,所属流程,发起人,发起时间。
如果是组任务,可以做 "拾取" 操作,抢占任务。
如果是个人任务,就可以直接办理(审批)。
审批:
显示原始表单信息;
显示历史审批信息;
填写本次的审批信息,包括是否通过和审批意见。
继承DispatchAction的Action类,最好不要有execute方法,如果要覆盖execute方法,其中要有return super.execute(mapping, form, request, response);语句。今天我写了个Action类,继承了DispatchAction类,使用的时候jsp网页显示白板,也不报错,可以猜测没有执行相应的ActionForward方法,最后在我的Action类中看到了execute方法,里面什么代码也没有,自然就jsp网页显示白板了。原因是有了execute方法后,struts就会默认调用它,而不会调用其他的ActionForward方法了。
有属性id获得实体
public Role getRole(int id) {
return (Role)getSession().get(Role.class, id);
}
一些大部分jsp页面都要用的代码,可以放到一个common.jsp中,如下
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="html" uri="http://struts.apache.org/tags-html"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%
response.setDateHeader("Expires", 0);
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
%>
在其他jsp页面中使用
<%@ include file="commons.jspf" %>进行引入
可以使用下面的方式将css文件引入jsp页面中
<link rel="stylesheet" type="text/css" href="<html:rewrite page='/style/main.css'/>">
在Action类中forward后面加参数
int parentId=parent.getId();
ActionForward af=mapping.findForward("toList");
return new ActionForward(af.getPath()+"?parentId="+parentId,af.getRedirect());
af.getRedirect()可以的到在struts-config.xml中配置的forward的redirect属性中设置的Boolean值
<forward name="toList" path="/procdef.do" redirect="true"></forward>