背景
- 在搭建SSM整合activiti项目时,在查找activiti定义的流程模板时,前台不能够接受到ProcessDefinition这个对象。
原因
- ProcessDefinition是一个接口,在Spring MVC中使用Jackson将数据对象以Json格式传递给前台时,这个对象必须有无参构造函数,而ProcessDefinition没有。
解决办法
- 自己定义一个JavaBean,将ProcessDefinition的值赋值给JavaBean,将JavaBean以Json格式传递给前台。代码如下
/**
* 列出流程模板
*/
@RequestMapping(value="processlist", method = RequestMethod.GET)
public List<Process> processList() {
RepositoryService repositoryService = processEngine.getRepositoryService();
ProcessDefinitionQuery createProcessDefinitionQuery = repositoryService.createProcessDefinitionQuery();
List<ProcessDefinition> list = createProcessDefinitionQuery.list();
List<Process> processList=new ArrayList<Process>();
for (ProcessDefinition listTemp: list) {
Process process = new Process();
process.setId(listTemp.getId());
process.setName(listTemp.getName());
processList.add(process);
}
return processList;
}
Process是自己定义的JavaBean。