📄 taskformprepareaction.java
字号:
package org.jbpm.web.struts.action;
import java.util.*;
import javax.servlet.http.*;
import org.apache.commons.logging.*;
import org.apache.struts.action.*;
import org.jbpm.*;
import org.jbpm.model.definition.Definition;
import org.jbpm.model.execution.*;
import org.jbpm.web.formgen.*;
import org.jbpm.web.struts.form.*;
public class TaskFormPrepareAction extends org.apache.struts.action.Action {
private static Map formFileNamesCache = new HashMap();
public ActionForward execute(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws Exception {
TaskForm taskForm = (TaskForm) actionForm;
Long definitionId = null;
Long tokenId = null;
String stateName = null;
Map variables = null;
ExecutionService executionService = JbpmServiceLocator.getInstance().getExecutionService();
String tokenIdText = request.getParameter( "tokenId" );
if ( tokenIdText == null ) {
// this is a start process form
taskForm.setCommand( TaskForm.COMMAND_START_PROCESS_INSTANCE );
String definitionIdText = request.getParameter( "definitionId" );
definitionId = new Long( definitionIdText );
Definition definition = executionService.getDefinition( definitionId, null );
stateName = definition.getStartState().getName();
variables = new HashMap();
} else {
// this is a task form for an existing process instance
taskForm.setCommand( TaskForm.COMMAND_END_OF_STATE );
tokenId = new Long( tokenIdText );
Token token = executionService.getToken( tokenId, null );
Definition definition = token.getProcessInstance().getDefinition();
definitionId = definition.getId();
stateName = token.getState().getName();
variables = executionService.getVariables( tokenId );
}
Form form = Form.getForm( definitionId, stateName );
FormGenerator formGenerator = form.getGenerator();
Map parameters = formGenerator.prepareParameters( variables );
taskForm.setDefinitionId( definitionId );
taskForm.setTokenId( tokenId );
taskForm.setStateName( stateName );
taskForm.setParameters( parameters );
taskForm.setFormGenerator( formGenerator );
return mapping.findForward( "taskform" );
}
private static Log log = LogFactory.getLog(TaskFormPrepareAction.class);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -