1 16 17 package info.jtrac.web; 18 19 import info.jtrac.Jtrac; 20 import javax.servlet.http.HttpServletRequest ; 21 import javax.servlet.http.HttpServletResponse ; 22 23 import org.apache.commons.logging.Log; 24 import org.apache.commons.logging.LogFactory; 25 import org.springframework.web.servlet.mvc.multiaction.MultiActionController; 26 import org.springframework.webflow.context.ExternalContext; 27 import org.springframework.webflow.context.ExternalContextHolder; 28 import org.springframework.webflow.context.servlet.ServletExternalContext; 29 import org.springframework.webflow.execution.FlowExecution; 30 import org.springframework.webflow.execution.repository.FlowExecutionRepository; 31 import org.springframework.webflow.executor.FlowExecutor; 32 import org.springframework.webflow.executor.FlowExecutorImpl; 33 34 39 public abstract class AbstractMultiActionController extends MultiActionController { 40 41 protected final Log logger = LogFactory.getLog(getClass()); 42 43 protected Jtrac jtrac; 44 private FlowExecutionRepository repository; 45 46 public void setJtrac(Jtrac jtrac) { 47 this.jtrac = jtrac; 48 } 49 50 public void setFlowExecutor(FlowExecutor flowExecutor) { 51 FlowExecutorImpl executor = (FlowExecutorImpl) flowExecutor; 52 this.repository = executor.getExecutionRepository(); 53 } 54 55 59 protected FlowExecution getFlowExecution(HttpServletRequest request, HttpServletResponse response) { 60 ExternalContext externalContext = new ServletExternalContext(getServletContext(), request, response); 61 ExternalContextHolder.setExternalContext(externalContext); 62 String flowExecutionKey = request.getParameter("_flowExecutionKey"); 63 return repository.getFlowExecution(repository.parseFlowExecutionKey(flowExecutionKey)); 64 } 65 66 } 67 | Popular Tags |