1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.apache.struts2.s1;
23
24 import javax.servlet.http.HttpServletRequest;
25
26 import org.apache.struts.action.ActionForm;
27 import org.apache.struts.action.ActionMapping;
28 import org.apache.struts2.ServletActionContext;
29 import org.apache.struts2.dispatcher.Dispatcher;
30
31 import com.opensymphony.xwork2.ActionInvocation;
32 import com.opensymphony.xwork2.config.Configuration;
33 import com.opensymphony.xwork2.inject.Inject;
34 import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
35 import com.opensymphony.xwork2.interceptor.ScopedModelDriven;
36
37 /***
38 * Calls the reset() method on the ActionForm, if it exists.
39 */
40 public class ActionFormResetInterceptor extends AbstractInterceptor {
41
42 protected Configuration configuration;
43
44 @Inject
45 public void setConfiguration(Configuration config) {
46 this.configuration = config;
47 }
48
49 @Override
50 public String intercept(ActionInvocation invocation) throws Exception {
51 Object action = invocation.getAction();
52
53 if (action instanceof ScopedModelDriven) {
54 ScopedModelDriven modelDriven = (ScopedModelDriven) action;
55 Object model = modelDriven.getModel();
56 if (model != null && model instanceof ActionForm) {
57 Struts1Factory factory = new Struts1Factory(configuration);
58 ActionMapping mapping = factory.createActionMapping(invocation.getProxy().getConfig());
59 HttpServletRequest req = ServletActionContext.getRequest();
60 ((ActionForm)model).reset(mapping, req);
61 }
62 }
63 return invocation.invoke();
64 }
65 }