文·原创/朱季谦

工作流是一个针对企业用户、开发人员、系统管理员的轻量级工作流业务管理平台,其核心是使用Java开发的快速、稳定的BPMN2.0流程引擎。在我们日常开发当中,例如oa系统里的请假功能,采购流程,以及订单流程,等等,都会涉及到流程的开发,这里面可以用工作流来进行开发,可以起到快速开发且稳定的效果,笔者最近都在研究工作流,也对这个东西有很大的兴趣。

最近因公司业务需要,需将Activiti Modeler的web在线设计器集合到公司一套Spring+SpringMVC+hibernate框架里,这是我第一次玩工作流的在线设计器,先前都只是在eclipse上安装工作流的插件进行流程图的设计以及开发,所以,整合在线设计器,在这个过程当中还是遇到了不少坑。其中有一个是乱码问题,也就是整合完成之后,运行项目时,在点击路径localhost:8080/activiti/modeler.jsp?modelld=1跳转到Activiti在线设计器页面时,原以为下一秒可以看到带有很多图标的设计器页面,但万万没有想到的是,竟然出现了这样一个东西——

你没有看错,整张页面的title部分,都变成问号了!


当时我的表情可以说是一脸蒙蔽,懵逼之后就开始冷静下来,准备看看究竟是哪里出现了问题。

经过一番刻骨铭心的检查后,发现这些页面上的数据来源原来是从一个stencilset.json里获取到的,这个json文件是Activiti modeler自身带的,具体内容如下截图所示——

在控制层,访问这个stencilset.json的方法是长这样的——

找到这个访问json的方法后,我试着测了一下,发现在谷歌浏览器页面上显示这个json文件的数据也是乱的,中文的地方都出现了一个个问好,问号对应的正好就是web设计器页面上的乱码。

根据这个现象,可以确定乱码问题就出在访问这个json文件出错之上。

在上面的截图中,类StencilsetRestResource的方法getStencilset中,返回的是一个String类型,在Activiti Modeler源码里,会自动将String类型转换成Json格式的数据,但是,该字符串数据若出现以下乱码情况,转换就会出现问题,就会导致页面也跟着乱码,所以,解决的办法是保证方法getStencilset读取stencilset.json不出现以下乱码问题,而是以正常的json字符串格式——

解决办法——在Spring-MVC.xml文件里加这样一段编码设置,就可以解决该问题了,这样访问的json字符串就不会出现乱码,页面上也可以正常运行了。

最后截取一张成功后的Activiti Modeler在线设计器页面图片——

SSH框架集成Activiti Modeler在线设计器页面出现问号及乱码的解决办法的更多相关文章

  1. Activiti(二) springBoot2集成activiti,集成activiti在线设计器

    摘要 本篇随笔主要记录springBoot2集成activiti流程引擎,并且嵌入activiti的在线设计器,可以通过浏览器直接编辑出我们需要的流程,不需要通过eclipse或者IDEA的actiB ...

  2. Activiti工作流学习之SpringBoot整合Activiti5.22.0实现在线设计器(二)

    一.概述 网上有很多关于Eclipse.IDEA等IDE插件通过拖拽的方式来画工作流程图,个人觉得还是不够好,所以花点时间研究了一下Activiti在线设计器,并与SpringBoot整合. 二.实现 ...

  3. Winform开发框架之图表报表在线设计器2-图表-SNF.EasyQuery项目--SNF快速开发平台3.3-Spring.Net.Framework

    上一篇讲到,如何快速创建报表程序了.这篇教大家如何快速制作图表报表. 继上一篇,Winform开发框架之图表报表在线设计器-报表 上一篇讲到如何了创建数据源,这里就不在介绍了.那我们就直接从图表设计器 ...

  4. Winform开发框架之图表报表在线设计器-报表-SNF.EasyQuery项目--SNF快速开发平台3.3-+Spring.Net.Framework

    带过项目和做过项目的人都知道,在客户现场客户的需求是百般多样的,今天要查销售出库情况,明天要看整个月的各部门销售情况,后天要查全年每个客户的项目金额.一直以前都有新需求,虽然会有售后收益,但如果有一个 ...

  5. 报表和仪表板在线设计器Stimulsoft Designer 最新版发布

    Stimulsoft Designer是统一的Stimulsoft框架的一部分,该框架包括用于生成报表和分析数据的引擎.报表设计器和查看器. 您可以在计算机上创建报表,继续使用在线设计器在云中对其进行 ...

  6. activiti web流程设计器 工作流的 整合视频教程 SSM和独立部署

    本视频为activiti工作流的web流程设计器整合视频教程 整合Acitiviti在线流程设计器(Activiti-Modeler 5.21.0 官方流程设计器) 本视频共讲了两种整合方式 1. 流 ...

  7. 如何在CRM系统中集成ActiveReports最终报表设计器

    有时候,将ActiveReports设计器集成到业务系统中,为用户提供一些自定义的数据表,用户不需要了解如何底层的逻辑关系和后台代码,只需要选择几张关联的数据表,我们会根据用户的选择生成可供用户直接使 ...

  8. SpringBoot集成thymeleaf(自定义)模板中文乱码的解决办法

    楼主今天在学习SpringBoot集成thymelaf的时候报了中文乱码的错误,经过网上的搜索,现在得到解决的办法,分享给大家: package com.imooc.config; import or ...

  9. H5页面设计器,仿有赞商城页面在线设计器,比富文本框更友好的内容编辑器

    基本上每个web应用,都会牵扯到内容编辑,尤其是移动的web应用,微信开发之类的.页面内容自定义是最常用的功能了,之前大部分解决方案都是采用富文本框编辑器kindeditor,ueditor,cked ...

随机推荐

  1. 使用Qt installer framework制作安装包(不知道是否适合Mac和Linux?)

    一.介绍 使用Qt库开发的应用程序,一般有两种发布方式:(1)静态编译发布.这种方式使得程序在编译的时候会将Qt核心库全部编译到一个可执行文件中.其优势是简单单一,所有的依赖库都集中在一起,其缺点也很 ...

  2. WPF与缓动(三) 指数缓动

    原文:WPF与缓动(三) 指数缓动 WPF与缓动(三) 指数缓动                                                                     ...

  3. Java数据结构和算法的数组

    阵列的功能: 1.固定大小 2.相同的数据类型 3. 4.数据项可反复 Java数据类型:基本类型(int和double)和对象类型.在很多编程语言中.数组也是基本类型.但在Java中把它们当作对象来 ...

  4. [ 转]Node.js模块 require和 exports

    什么是模块? node.js通过实现CommonJS的Modules/1.0标准引入了模块(module)概念,模块是Node.js的基本组成部分.一个node.js文件就是一个模块,也就是说文件和模 ...

  5. DataGrid自定义复选框

    <DataGridTemplateColumn Header="选择" Width="Auto" > <!--列头模板--> <D ...

  6. WPF SystemParameters的使用

    SubWindow win = new SubWindow();                //win.Width = SystemParameters.WorkArea.Width;      ...

  7. Lexer的设计--中(4)

    设计一个小型的内存池以及链表 上一节撸到万事俱备只欠真正的lex, 但是lex的作用是将源代码转化为Token流, 用什么保存Token? 这就涉及到我们要接触的第一个数据结构-链表, 虽然标准库中很 ...

  8. 完美实现鼠标拖拽事件,解决各种小bug,基于jquery

    鼠标拖拽事件是web中使用频率极高的事件,之前写过的代码包括网上的代码,总存在各种各样的问题,包括拖拽体验差,松开鼠标后拖拽效果仍存在以及代码冗余过大等 本次我才用jQuery实现一个尽可能高效的拖拽 ...

  9. 图像滤镜艺术---PS图像转手绘特效实现方案

    原文:图像滤镜艺术---PS图像转手绘特效实现方案 手绘效果实现方案 本文介绍一种PS手绘效果的实现方案,PS步骤来自网络,本文介绍代码实现过程. 整体看来,虽然效果还是有很大差异,但是已经有了这种特 ...

  10. LINQ查询表达式---------into

    LINQ查询表达式---------into into 上下文关键字创建一个临时标识符,以便将 group.join 或 select 子句的结果存储到新的标识符 class Program { pu ...