activiti5显示流程图
2013-07-05 11:03
363 查看
从数据库中以输入流的方式读取出图片数据,然后在jsp页面中读取输入流,以图片的格式显示出图片。
InputStream中实际上就是流程图,然后就是以怎样的相应格式显示InputStream中的内容。
service层
/**
* 读取带跟踪的图片
*/
public InputStream readResource(String executionId){
InputStream imageStream = null;
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(executionId).singleResult();
BpmnModel bpmnModel = repositoryService.getBpmnModel(processInstance.getProcessDefinitionId());
List<String> activeActivityIds = runtimeService.getActiveActivityIds(executionId);
ProcessEngineImpl defaultProcessEngine = (ProcessEngineImpl) ProcessEngines.getDefaultProcessEngine();
Context.setProcessEngineConfiguration(defaultProcessEngine.getProcessEngineConfiguration());
Context.setProcessEngineConfiguration(((ProcessEngineImpl) processEngine).getProcessEngineConfiguration());
imageStream = ProcessDiagramGenerator.generateDiagram(bpmnModel, "png", activeActivityIds);
return imageStream;
}
struts2 action中
//从数据库中得到运行流程图,带标红
public String readResource(){
HttpServletResponse response = ServletActionContext.getResponse();
HttpServletRequest request = ServletActionContext.getRequest();
ActivitiController activitiController = new ActivitiController();
InputStream imageStream = activitiController.readResource(processInstanceId);
request.setAttribute("inputStream", imageStream);
/*byte[] b = new byte[1024];
int len = -1;
try {
while ((len = imageStream.read(b, 0, 1024)) != -1) {
response.getOutputStream().write(b, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
}*/
return "showImage";
}
jsp页面 需要设置response的相应格式
<%
response.setContentType("image/png;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
InputStream is = (InputStream)request.getAttribute("inputStream");
byte[] b = new byte[1024];
int len = -1;
while((len = is.read(b, 0, 1024)) != -1) {
response.getOutputStream().write(b, 0, len);
// 防止异常:getOutputStream() has already been called for this response
out.clear();
out = pageContext.pushBody();
}
%>
或者
struts2 action中
//从数据库中得到运行流程图,带标红
public String readResource(){
HttpServletResponse response = ServletActionContext.getResponse();
HttpServletRequest request = ServletActionContext.getRequest();
ActivitiController activitiController = new ActivitiController();
InputStream imageStream = activitiController.readResource(processInstanceId);
request.setAttribute("inputStream", imageStream);
byte[] b = new byte[1024];
int len = -1;
try {
while ((len = imageStream.read(b, 0, 1024)) != -1) {
response.getOutputStream().write(b, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
在jsp页面中用
<img src="<%=basePath%>oa/leaveAction!readResource"/> 以图片的方式自动加载
InputStream中实际上就是流程图,然后就是以怎样的相应格式显示InputStream中的内容。
service层
/**
* 读取带跟踪的图片
*/
public InputStream readResource(String executionId){
InputStream imageStream = null;
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(executionId).singleResult();
BpmnModel bpmnModel = repositoryService.getBpmnModel(processInstance.getProcessDefinitionId());
List<String> activeActivityIds = runtimeService.getActiveActivityIds(executionId);
ProcessEngineImpl defaultProcessEngine = (ProcessEngineImpl) ProcessEngines.getDefaultProcessEngine();
Context.setProcessEngineConfiguration(defaultProcessEngine.getProcessEngineConfiguration());
Context.setProcessEngineConfiguration(((ProcessEngineImpl) processEngine).getProcessEngineConfiguration());
imageStream = ProcessDiagramGenerator.generateDiagram(bpmnModel, "png", activeActivityIds);
return imageStream;
}
struts2 action中
//从数据库中得到运行流程图,带标红
public String readResource(){
HttpServletResponse response = ServletActionContext.getResponse();
HttpServletRequest request = ServletActionContext.getRequest();
ActivitiController activitiController = new ActivitiController();
InputStream imageStream = activitiController.readResource(processInstanceId);
request.setAttribute("inputStream", imageStream);
/*byte[] b = new byte[1024];
int len = -1;
try {
while ((len = imageStream.read(b, 0, 1024)) != -1) {
response.getOutputStream().write(b, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
}*/
return "showImage";
}
jsp页面 需要设置response的相应格式
<%
response.setContentType("image/png;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
InputStream is = (InputStream)request.getAttribute("inputStream");
byte[] b = new byte[1024];
int len = -1;
while((len = is.read(b, 0, 1024)) != -1) {
response.getOutputStream().write(b, 0, len);
// 防止异常:getOutputStream() has already been called for this response
out.clear();
out = pageContext.pushBody();
}
%>
或者
struts2 action中
//从数据库中得到运行流程图,带标红
public String readResource(){
HttpServletResponse response = ServletActionContext.getResponse();
HttpServletRequest request = ServletActionContext.getRequest();
ActivitiController activitiController = new ActivitiController();
InputStream imageStream = activitiController.readResource(processInstanceId);
request.setAttribute("inputStream", imageStream);
byte[] b = new byte[1024];
int len = -1;
try {
while ((len = imageStream.read(b, 0, 1024)) != -1) {
response.getOutputStream().write(b, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
在jsp页面中用
<img src="<%=basePath%>oa/leaveAction!readResource"/> 以图片的方式自动加载
相关文章推荐
- activiti工作流显示流程图且当前节点高亮
- activiti 5.16 实现流程图高亮跟踪显示
- activiti5.17.0流程图及节点显示
- Activiti 历史流程图高亮显示
- activiti部署到linux后流程图不显示汉字的问题
- activiti 5.13流程图连线名称不显示bug修复
- Activiti 历史流程图高亮显示
- activiti学习资料(实例流程图的显示)
- activiti流程图动态创建
- activiti-modeler5.16 与项目整合实现在线画流程图
- Activiti生成流程图
- activiti查看流程图的bug
- activiti流程图查看
- Activiti-Explorer中设计的流程图保存到哪里去了?
- activiti流程图动态创建
- activiti 获取流程图
- activiti 发布后图片中汉字显示乱码问题
- 下载aActiviti中的流程文件和流程图
- Activiti6.0.0 跟踪流程执行情况用红色框在流程图上标识路线跟节点
- Activiti流程图乱码