jbpm的流程图显示

阅读更多

 

jbpm的包中提供了显示流程图所用的三个主要文件。可通过 jbpm-starters-kit-3.1.x得到。分别是\jbpm\src\java.webapp\org\jbpm\webapp\tag\ProcessImageTag.java、\jbpm\build\jbpm.war.dir\WEB-INF,和\jbpm\src\java.webapp\org\jbpm\webapp\servlet\ ProcessImageServlet.java。在JBPM的例子里,这三个文件共同完成JBPM流程图的显示。 

 

      步骤: 

 

      (1)在web.xml中配置servlet。我的例子中,把servlet放在了demo.workflow.servlet包中,故在web.xml中配置如下: 

 

   

        processImageServlet

        demo.workflow.servlet.ProcessImageServlet

   

   

        processImageServlet

        /processimage

     

 

       (2)将jbpm.tld文件拷贝到web-inf下。引入 \ProcessImageTag.java文件并在jbpm.tld中配置。我将 ProcessImageTag.java放在demo.workflow.tag包中,故而在jbpm.tld中将标签修改如下: 

 

    demo.workflow.tag.ProcessImageTag

 

        (3)建立显示流程图的页面process-img.jsp。代码如下(注意引入了jbpm标签文件): 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<%@ taglib uri="/WEB-INF/jbpm.tld" prefix="jbpm" %>

Insert title here

<%

long tokenId=Long.parseLong(request.getParameter("tokenId"));

 

 %>

 

------------------------------------------------------------------

        (4)在主页中建立对process-img.jsp的引用。注意要给出tokenId这个参数。在href中加入变量的方法是直接用 =<%=id%>的方式。 

 

查看流程 

 

运行时点击查看流程就看到标记了执行位置的流程图了。 

 

基本原理:发布流程时,共发布了三个文件,definition、gpd和一个image图片。其中,gpd是各结点的位置信息。图片保存在jbpm_byteblock表中,其他图片信息保存在jbpm_bytearray表中。显示流程图时,首先从表中把image取出,作为背景,然后利用gpd中的结点位置信息在背景图上画上红框。 

 

注意:要用到jaxen.jar包。

 

 

 

你可能感兴趣的:(jbpm,流程图)