心得:想要做一件事,首先得清楚这件事的本质。

最开始学习activiti,我与大家都一样,徘徊在如何与业务系统对接,如何整合modeler实现在线编辑。当我花了1周时间高强度学习后,我发现,一开始想得太多了。

最初阶段,我应该先让activiti跑起来,然后与业务系统对接,弄清楚activiti的各种实现原理后,最后来整合modeler才是最好的方式。因为这个时候你已经明白了modeler与工作流引擎之间的关系,你知道应该怎么做,你的方向在哪里。

这可能就是为什么网上的教程,每一个都是直接从测试类开始,只告诉大家如何进行流程流程,而不是一上来就告诉大家怎么整合与使用modeler的因为吧。

下面,就开始整合modeler,如果过程中有不对的或者有疑问的地方,欢迎指导与探讨。

所以,我的教程也是基于你已经有一个能够运行activiti的项目基础上。

1、什么是modeler

modeler是activiti的一个在线编辑流程插件,通俗的说,它就是一个页面,不过这个页面包含了很多的控制以实现我们的目的。

2、在线编辑原理

很多人一开始可能会被“流程在线编辑”这几个字误导,认为modeler编辑的是流程,其实不然,编辑器编辑的只是一个Model。Model部署后才是流程(procdef),已经部署的流程(procdef)也可以转换为Model,Model与流程(procdef)是分别独立的,删掉Model流程还在,删掉流程Model还在。

3、整合modeler需要的资源

a.样式(官方发布的activiti-explorer.war包中获取):diagram-viewer文件夹、editor-app文件夹

b.页面控件(官方发布的activiti-explorer.war包中获取):stencilset.json

c.modeler.html(官方发布的activiti-explorer.war包中获取)

d.流程定义列表(如果先做项目后整合,那么这个列表应该是已经有的)(如果没有,下载咖啡兔的demo,然后拷贝process-list)建议大家参照着自己写一个页面

e.模型列表(下载咖啡兔的demo,拷贝model-list)建议大家参照着自己写一个页面

f.jar包(下载咖啡兔的demo,参照咖啡兔的jar包,不是所有的都用得上,最好的方式就是先导入基础包,然后运行,运行报错差什么包就加什么包)

4、整合步骤

a.将diagram-viewer文件夹与editor-app文件夹拷贝至项目webapp下,保证项目编译后在根目录

b.将stencilset.json文件拷贝至resources目录下,保证项目编译后在根目录

c.将modeler.html文件拷贝至WEB-INF目录下

d.将process-list文件与model-list文件拷贝至WEB-INF目录指定的页面路劲下

e.导入jar包

f.扫描activiti源生controller(只要controller)

<context:component-scan base-package="org.activiti.rest.editor"/>
<context:component-scan base-package="org.activiti.rest.diagram"/>

g.编写controller(一个用来操控流程,一个用来操控模型)(操控流程的controller用自己写的,操控模型的controller参考咖啡兔的ModelController)

1)流程controller(代码太多,这里就不贴出来了,参考咖啡兔的ActivitiController,我只列出整合modeler需要用到的方法)

a)获取流程定义列表(用于流程定义列表页面展示所有已经部署的流程定义)

b)流程定义转换Model(用于没有模型的流程转换模型)
2)模型controller(参考咖啡兔的ModelController,其实直接全部拷贝就可以了)

h.扫描自身controller(该controller的作用就是将请求重定向到modeller页面,页面的所有控件会由js自行加载)

<context:component-scan base-package="cn.cst.oss.bpm.contorller"/>

i.将modeler.html独立出来,因为spring mvc 一般都是直接过滤的所有路径(在静态资源控制的地方添加)不然访问会报错,提示没有这个方法

<resources mapping="/modeler.html" location="WEB-INF/"/>

5、检验

a.项目启动,跳转到流程定义列表,能够看到所有的流程定义表示成功。

b.点击任意流程定义后面的转换Model控件,后台不抱错并且页面到了模型列表页,有一条数据,表示成功。

d.点击编辑按钮(咖啡兔是直接在页面超链接跳转到modeler.html,我是在模型controller写了一个方法来跳转,实现效果一致),成功打开modeler.html表示成功。

c.模型列表的其他功能自己去挨个实验,这里不多做说明。

6、原理:先要获取到所有的流程定义,然后将流程定义转换为Model(模型),将模型ID传给modeler页面并跳转到modeler页面。modeler页面会自动解析之前所列出的样式资源与控件资源,一旦进行逻辑操作就调用第4.f 步骤扫描的controller。

activiti 5.19整合modeler在线编辑器相关推荐

  1. springmvc+activiti 完美整合- 流程在线设计+代码生成器+UI快速开发库,提高一半的开发效率

    JEECG(J2EE Code Generation) 是一款基于代码生成器的智能开发平台,采用代码生成+手工MERGE半智能开发模式, 可以帮助解决Java项目60%的重复工作,让开发更多关注业务逻 ...

  2. php 图片在线编辑功能,summernote在线编辑器提交的内容PHP处理其中图片函数

    <summernote在线编辑器提交的内容PHP处理其中图片函数>要点: 本文介绍了summernote在线编辑器提交的内容PHP处理其中图片函数,希望对您有用.如果有疑问,可以联系我们. ...

  3. jquery插件课程2 放大镜、多文件上传和在线编辑器插件如何使用

    jquery插件课程2 放大镜.多文件上传和在线编辑器插件如何使用 一.总结 一句话总结:插件使用真的还是比较简单的,引包,初始化,配置参数(json),配置数据(json),而后两步不是必须的.而且 ...

  4. 开源的在线html编辑器,22个国外的Web在线编辑器收集

    1. TinyMCE 免费,开源,轻量的在线编辑器,基于 javascript,高度可定制,跨平台.2. FCKEditor 免费,开源,用户量庞大的在线编辑器,有良好的社区支持.3. YUI Edi ...

  5. JS设计“网页在线编辑器”

    为扩充佳誉网站管理软件的实际功能,今天大致性的设计了一个所见即所得的网页在线编辑器,只做了个雏形出来,目前所能做的仅仅是在"编辑"状态下写入HTML代码,在"预览&quo ...

  6. onlyoffice开发java_如何集成Alfresco与ONLYOFFICE在线编辑器在Ubuntu 14.04

    本指南将介绍如何使用onlyoffice -alfresco脚本来允许用户从ONLYOFFICE在线编辑器中的Alfresco Share共同编辑文档. Alfresco Share建立在Alfres ...

  7. html5在线编辑器 h,前端最好用的HTML在线编辑器是哪一款

    <前端最好用的HTML在线编辑器是哪一款>要点: 本文介绍了前端最好用的HTML在线编辑器是哪一款,希望对您有用.如果有疑问,可以联系我们. 开发网站,一定会碰到HTML在线编辑器,我们详 ...

  8. php后台幻灯片管理,制作 后台管理界面、在线编辑器 幻灯片.ppt

    制作 后台管理界面.在线编辑器 幻灯片 制作 后台管理界面 在线编辑器 后台管理界面 接PPT17(设置IIS,建立站点) 1.将压缩文件ewebeditor.rar放在admin中 2.右键eweb ...

  9. ASP.net:添加.net(2.0C#)FCKeditor在线编辑器步骤

    1.下载本版本的编辑器压缩包.源码下载地址 2.解压缩打开文件夹拥有如下文件: 3.在VS中添加"选择项"加载在此文件夹的Bin下FredCK.FCKeditorV2.dll. 4 ...

  10. csdn自带的在线编辑器如何让图片并排显示

    之前显示图片一直是一行一个,也就是按列来,是因为养成了习惯,每次插入图片之后就回车.其实我们发现,只要紧跟在上一个图片括号的后面插入你要的图片就可以完成并排显示. 1.先插入第一张图片,然后光标定位到 ...

最新文章

  1. 【C++】多线程与互斥锁【二】
  2. node.js是做什么的?
  3. 柚子小姐,Happy Birthday
  4. djano-cms学习笔计(一)
  5. [C# 开发技巧系列] 使用C#操作幻灯片
  6. elasticsearch,python包pyes进行的处理
  7. vbs获取程序窗体句柄_[VBA][高阶应用][类模块]自绘窗体进度条类cProgressBar.cls
  8. OpenCASCADE绘制测试线束:拓扑命令之扫掠Sweeping
  9. 如何在Eclipse里方便地进行markdown文件编辑
  10. 引用Nuget包Microsoft.EntityFrameworkCore.Tools.DotNet报错
  11. vs中四点画矩形的算法_中考热点,初高中衔接之倒角利器四点共圆
  12. spring和jdbctemplate
  13. iphone已停用怎么解锁_iPhone 已停用怎么办?使用锁屏密码需要注意
  14. F2FS的sysfs调整文件系统参数
  15. 精灵混合加密系统_混合云的数据备份
  16. 人工晶状体在线公式A常数优化——多线程
  17. 企业落地级jmeter性能测试,结果分析以及报告(4-3)
  18. 卷积神经网络(conv2d参数含义、卷积层、池化层)
  19. js的event详解
  20. 安利一个简单快速好用的CMS建站系统

热门文章

  1. 简要概述网络安全保障体系的总体框架
  2. Python语言程序设计课程论文--飞机大战
  3. 为什么我们要学习Microsoft Graph
  4. Beyond Short Snippets: Deep Networks for Video Classification
  5. 入侵检测系统的原理与应用
  6. jeecms idea部署
  7. 关于作虚拟软盘启动(转)
  8. android.media.MediaCodec$CodecException: Error 0xfffffc0e
  9. 漫谈区块链“羊群效应”
  10. 企业微信:上传图片获取永久url --Java