1 16 package org.springframework.webflow.action; 17 18 import org.springframework.binding.expression.EvaluationContext; 19 import org.springframework.binding.expression.Expression; 20 import org.springframework.util.Assert; 21 import org.springframework.webflow.execution.Event; 22 import org.springframework.webflow.execution.RequestContext; 23 24 36 public class EvaluateAction extends AbstractAction { 37 38 41 private Expression expression; 42 43 46 private ActionResultExposer evaluationResultExposer; 47 48 52 private ResultEventFactorySelector resultEventFactorySelector = new ResultEventFactorySelector(); 53 54 58 public EvaluateAction(Expression expression) { 59 this(expression, null); 60 } 61 62 68 public EvaluateAction(Expression expression, ActionResultExposer evaluationResultExposer) { 69 Assert.notNull(expression, "The expression this action should evaluate is required"); 70 this.expression = expression; 71 this.evaluationResultExposer = evaluationResultExposer; 72 } 73 74 protected Event doExecute(RequestContext context) throws Exception { 75 Object result = expression.evaluate(context, getEvaluationContext(context)); 76 if (evaluationResultExposer != null) { 77 evaluationResultExposer.exposeResult(result, context); 78 } 79 return resultEventFactorySelector.forResult(result).createResultEvent(this, result, context); 80 } 81 82 88 protected EvaluationContext getEvaluationContext(RequestContext context) { 89 return null; 90 } 91 } | Popular Tags |