1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 package org.apache.struts2.impl;
24
25 import java.util.Map;
26 import java.util.concurrent.Callable;
27
28 import com.opensymphony.xwork2.ActionContext;
29 import com.opensymphony.xwork2.DefaultActionProxy;
30
31 public class StrutsActionProxy extends DefaultActionProxy {
32
33 private static final long serialVersionUID = -2434901249671934080L;
34
35 public StrutsActionProxy(String namespace, String actionName, Map extraContext,
36 boolean executeResult, boolean cleanupContext) throws Exception {
37 super(namespace, actionName, extraContext, executeResult, cleanupContext);
38 }
39
40 public String execute() throws Exception {
41 ActionContext previous = ActionContext.getContext();
42 ActionContext.setContext(invocation.getInvocationContext());
43 try {
44 return RequestContextImpl.callInContext(invocation, new Callable<String>() {
45 public String call() throws Exception {
46 return invocation.invoke();
47 }
48 });
49 } finally {
50 if (cleanupContext)
51 ActionContext.setContext(previous);
52 }
53 }
54 }