jbpm3.x官方实现方法:
下载jbpm-starters-kit-3.1.x工具包(我用的是3.2.3,里面没有这个工具包,但这个工具包可以在3.2.3中使用)
1,拷贝jbpm-starters-kit-3.1.4\jbpm\src\java.webapp\org\jbpm\webapp\servlet\ProcessImageServlet.java到自己的项目中
2,拷贝jbpm-starters-kit-3.1.4\jbpm\src\java.webapp\org\jbpm\webapp\tag\ProcessImageTag.java到自己的项目中
3,拷贝jbpm-starters-kit-3.1.4\jbpm\src\resources\jbpm.war\WEB-INF\jbpm.tld到自己项目的WEB-INF目录下
4,在web.xml中配置
<span style="white-space:pre"> </span><servlet>
<servlet-name>processImageServlet</servlet-name>
<servlet-class>com.qf.servlet.ProcessImageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>processImageServlet</servlet-name>
<url-pattern>/processimage</url-pattern>
</servlet-mapping>
5,新建view.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<a href="process-img.jsp?tokenId=1590">查看流程</a>
</body>
</html>
6,新建process-img.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/WEB-INF/jbpm.tld" prefix="jbpm"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>查看流程图</title>
</head>
<body>
<%
long tokenId=Long.parseLong(request.getParameter("tokenId"));
%>
<jbpm:processimageToken token="<%=tokenId %>"/>
</body>
</html>
ps:实现原理,从view.jsp开始,超链接传一个当前token的id到process-img.jsp,process-img,jsp调用ProcessImageTag标签类,该标签类先根据流程定义id获取当前流程,
接着获取流程图,然后获取当前活动的Token,接着用dom4j读取gpd.xml获取当前活动结点的坐标,然后通过div进行渲染。