欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-02-01 17:39:22
文·原创/朱季谦 工作流是一个针对企业用户、开发人员、系统管理员的轻量级工作流业务管理平台,其核心是使用Java开发的快速、稳定的BPMN2.0流程引擎。在我们日常开发当中,例如oa系统里的请假功能,采购流程,以及订单流程,等等,都会涉及到流程的开发,这里面可以用工作流来进行开发,可以起到快速开发且 ......

文·原创/朱季谦

 

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

 

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

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

 

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

 


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

 

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

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

在控制层,访问这个stencilset.json的方法是长这样的——SSH框架集成Activiti Modeler在线设计器页面出现问号及乱码的解决办法

 

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

 

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

 

在上面的截图中,类stencilsetrestresource的方法getstencilset中,返回的是一个string类型,在activiti modeler源码里,会自动将string类型转换成json格式的数据,但是,该字符串数据若出现以下乱码情况,转换就会出现问题,就会导致页面也跟着乱码,所以,解决的办法是保证方法getstencilset读取stencilset.json不出现以下乱码问题,而是以正常的json字符串格式——SSH框架集成Activiti Modeler在线设计器页面出现问号及乱码的解决办法

 

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

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

 

 

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

 

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