SSH框架集成Activiti Modeler在線設計器頁面出現問號及亂碼的解決辦法


文·原創/朱季謙

 

工作流是一個針對企業用戶、開發人員、系統管理員的輕量級工作流業務管理平台,其核心是使用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在線設計器頁面圖片——

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM