JBPM实践系列(二)jsp页面中流程图的显示

      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中配置如下:

    <servlet>
        <servlet-name>processImageServlet</servlet-name>
        <servlet-class>demo.workflow.servlet.ProcessImageServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>processImageServlet</servlet-name>
        <url-pattern>/processimage</url-pattern>
    </servlet-mapping>

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

    <tagclass>demo.workflow.tag.ProcessImageTag</tagclass>
        (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" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
long tokenId=Long.parseLong(request.getParameter("tokenId"));

 %>
<jbpm:processimageToken token="<%=tokenId %>"/>
</body>
</html>

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

<a href="/TestJbpm/process-img.jsp?tokenId=<%=id%>">查看流程</a>

 

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

 

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

 

注意:要用到jaxen.jar包。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值