1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.struts.chain.contexts;
22
23 import org.apache.commons.chain.web.servlet.ServletWebContext;
24 import org.apache.struts.Globals;
25 import org.apache.struts.action.ActionMessages;
26 import org.apache.struts.action.ActionServlet;
27 import org.apache.struts.chain.Constants;
28 import org.apache.struts.config.ActionConfig;
29 import org.apache.struts.util.MessageResources;
30
31 import javax.servlet.ServletContext;
32 import javax.servlet.http.HttpServletRequest;
33 import javax.servlet.http.HttpServletResponse;
34
35
36
37
38
39 public class ServletActionContext extends WebActionContext {
40
41
42
43
44
45 public ServletActionContext(ServletWebContext context) {
46 super(context);
47 }
48
49
50
51
52
53
54
55
56
57 public ServletActionContext(ServletContext context,
58 HttpServletRequest request, HttpServletResponse response) {
59 this(new ServletWebContext(context, request, response));
60 }
61
62
63
64
65
66
67 protected ServletWebContext servletWebContext() {
68 return (ServletWebContext) this.getBaseContext();
69 }
70
71 public void release() {
72 this.servletWebContext().release();
73 super.release();
74 }
75
76
77
78
79
80
81
82
83
84
85 public ServletContext getContext() {
86 return servletWebContext().getContext();
87 }
88
89
90
91
92
93
94 public HttpServletRequest getRequest() {
95 return servletWebContext().getRequest();
96 }
97
98
99
100
101
102
103 public HttpServletResponse getResponse() {
104 return servletWebContext().getResponse();
105 }
106
107
108
109
110
111
112 public ActionServlet getActionServlet() {
113 return (ActionServlet) this.get(Constants.ACTION_SERVLET_KEY);
114 }
115
116
117
118
119
120
121 public void setActionServlet(ActionServlet servlet) {
122 this.put(Constants.ACTION_SERVLET_KEY, servlet);
123 }
124
125
126
127
128 public void setActionConfig(ActionConfig actionConfig) {
129 super.setActionConfig(actionConfig);
130 this.getRequestScope().put(Globals.MAPPING_KEY, actionConfig);
131
132
133 }
134
135 public MessageResources getMessageResources() {
136 return ((MessageResources) getRequest().getAttribute(Globals.MESSAGES_KEY));
137 }
138
139
140
141 public MessageResources getMessageResources(String key) {
142
143 ServletContext context = getActionServlet().getServletContext();
144
145
146 return (MessageResources) context.getAttribute(key
147 + getModuleConfig().getPrefix());
148 }
149
150 public void setMessageResources(MessageResources resources) {
151 super.setMessageResources(resources);
152 this.getRequest().setAttribute(Globals.MESSAGES_KEY, resources);
153 }
154
155
156
157
158
159
160
161
162 public void setMessageResources(String key, MessageResources resources) {
163 this.getRequest().setAttribute(key + getModuleConfig().getPrefix(),
164 resources);
165 }
166
167
168
169
170 public void saveErrors(ActionMessages errors) {
171
172 if ((errors == null) || errors.isEmpty()) {
173 getRequest().removeAttribute(Globals.ERROR_KEY);
174
175 return;
176 }
177
178
179 getRequest().setAttribute(Globals.ERROR_KEY, errors);
180 }
181
182 public void saveMessages(ActionMessages messages) {
183 if ((messages == null) || messages.isEmpty()) {
184 getRequest().removeAttribute(Globals.MESSAGE_KEY);
185
186 return;
187 }
188
189 getRequest().setAttribute(Globals.MESSAGE_KEY, messages);
190 }
191
192 public void addMessages(ActionMessages messages) {
193 if (messages == null) {
194 return;
195 }
196
197 ActionMessages requestMessages = getMessages();
198
199 if (requestMessages == null) {
200 requestMessages = new ActionMessages();
201 }
202
203 requestMessages.add(messages);
204 saveMessages(requestMessages);
205 }
206
207 public void addErrors(ActionMessages errors) {
208 if (errors == null) {
209 return;
210 }
211
212 ActionMessages requestErrors = getErrors();
213
214 if (requestErrors == null) {
215 requestErrors = new ActionMessages();
216 }
217
218 requestErrors.add(errors);
219 saveErrors(requestErrors);
220 }
221
222 public ActionMessages getErrors() {
223 return (ActionMessages) this.getRequest().getAttribute(Globals.ERROR_KEY);
224 }
225
226 public ActionMessages getMessages() {
227 return (ActionMessages) this.getRequest().getAttribute(Globals.MESSAGE_KEY);
228 }
229
230
231
232
233
234
235
236 public void saveToken() {
237 token.saveToken(getRequest());
238 }
239
240 public String generateToken() {
241 return token.generateToken(getRequest());
242 }
243
244 public boolean isTokenValid(boolean reset) {
245 return token.isTokenValid(getRequest(), reset);
246 }
247
248 public void resetToken() {
249 token.resetToken(getRequest());
250 }
251 }