1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.strutsel.taglib.bean;
22
23 import org.apache.struts.taglib.bean.MessageTag;
24 import org.apache.strutsel.taglib.utils.EvalHelper;
25
26 import javax.servlet.jsp.JspException;
27
28 /**
29 * Custom tag that retrieves an internationalized messages string (with
30 * optional parametric replacement) from the <code>ActionResources</code>
31 * object stored as a context attribute by our associated
32 * <code>ActionServlet</code> implementation. <p> This class is a subclass of
33 * the class <code>org.apache.struts.taglib.bean.MessageTag</code> which
34 * provides most of the described functionality. This subclass allows all
35 * attribute values to be specified as expressions utilizing the JavaServer
36 * Pages Standard Library expression language.
37 *
38 * @version $Rev: 471754 $
39 */
40 public class ELMessageTag extends MessageTag {
41 /**
42 * Instance variable mapped to "arg0" tag attribute. (Mapping set in
43 * associated BeanInfo class.)
44 */
45 private String arg0Expr;
46
47 /**
48 * Instance variable mapped to "arg1" tag attribute. (Mapping set in
49 * associated BeanInfo class.)
50 */
51 private String arg1Expr;
52
53 /**
54 * Instance variable mapped to "arg2" tag attribute. (Mapping set in
55 * associated BeanInfo class.)
56 */
57 private String arg2Expr;
58
59 /**
60 * Instance variable mapped to "arg3" tag attribute. (Mapping set in
61 * associated BeanInfo class.)
62 */
63 private String arg3Expr;
64
65 /**
66 * Instance variable mapped to "arg4" tag attribute. (Mapping set in
67 * associated BeanInfo class.)
68 */
69 private String arg4Expr;
70
71 /**
72 * Instance variable mapped to "bundle" tag attribute. (Mapping set in
73 * associated BeanInfo class.)
74 */
75 private String bundleExpr;
76
77 /**
78 * Instance variable mapped to "key" tag attribute. (Mapping set in
79 * associated BeanInfo class.)
80 */
81 private String keyExpr;
82
83 /**
84 * Instance variable mapped to "locale" tag attribute. (Mapping set in
85 * associated BeanInfo class.)
86 */
87 private String localeExpr;
88
89 /**
90 * Instance variable mapped to "name" tag attribute. (Mapping set in
91 * associated BeanInfo class.)
92 */
93 private String nameExpr;
94
95 /**
96 * Instance variable mapped to "property" tag attribute. (Mapping set in
97 * associated BeanInfo class.)
98 */
99 private String propertyExpr;
100
101 /**
102 * Instance variable mapped to "scope" tag attribute. (Mapping set in
103 * associated BeanInfo class.)
104 */
105 private String scopeExpr;
106
107 /**
108 * Getter method for "arg0" tag attribute. (Mapping set in associated
109 * BeanInfo class.)
110 */
111 public String getArg0Expr() {
112 return (arg0Expr);
113 }
114
115 /**
116 * Getter method for "arg1" tag attribute. (Mapping set in associated
117 * BeanInfo class.)
118 */
119 public String getArg1Expr() {
120 return (arg1Expr);
121 }
122
123 /**
124 * Getter method for "arg2" tag attribute. (Mapping set in associated
125 * BeanInfo class.)
126 */
127 public String getArg2Expr() {
128 return (arg2Expr);
129 }
130
131 /**
132 * Getter method for "arg3" tag attribute. (Mapping set in associated
133 * BeanInfo class.)
134 */
135 public String getArg3Expr() {
136 return (arg3Expr);
137 }
138
139 /**
140 * Getter method for "arg4" tag attribute. (Mapping set in associated
141 * BeanInfo class.)
142 */
143 public String getArg4Expr() {
144 return (arg4Expr);
145 }
146
147 /**
148 * Getter method for "bundle" tag attribute. (Mapping set in associated
149 * BeanInfo class.)
150 */
151 public String getBundleExpr() {
152 return (bundleExpr);
153 }
154
155 /**
156 * Getter method for "key" tag attribute. (Mapping set in associated
157 * BeanInfo class.)
158 */
159 public String getKeyExpr() {
160 return (keyExpr);
161 }
162
163 /**
164 * Getter method for "locale" tag attribute. (Mapping set in associated
165 * BeanInfo class.)
166 */
167 public String getLocaleExpr() {
168 return (localeExpr);
169 }
170
171 /**
172 * Getter method for "name" tag attribute. (Mapping set in associated
173 * BeanInfo class.)
174 */
175 public String getNameExpr() {
176 return (nameExpr);
177 }
178
179 /**
180 * Getter method for "property" tag attribute. (Mapping set in associated
181 * BeanInfo class.)
182 */
183 public String getPropertyExpr() {
184 return (propertyExpr);
185 }
186
187 /**
188 * Getter method for "scope" tag attribute. (Mapping set in associated
189 * BeanInfo class.)
190 */
191 public String getScopeExpr() {
192 return (scopeExpr);
193 }
194
195 /**
196 * Setter method for "arg0" tag attribute. (Mapping set in associated
197 * BeanInfo class.)
198 */
199 public void setArg0Expr(String arg0Expr) {
200 this.arg0Expr = arg0Expr;
201 }
202
203 /**
204 * Setter method for "arg1" tag attribute. (Mapping set in associated
205 * BeanInfo class.)
206 */
207 public void setArg1Expr(String arg1Expr) {
208 this.arg1Expr = arg1Expr;
209 }
210
211 /**
212 * Setter method for "arg2" tag attribute. (Mapping set in associated
213 * BeanInfo class.)
214 */
215 public void setArg2Expr(String arg2Expr) {
216 this.arg2Expr = arg2Expr;
217 }
218
219 /**
220 * Setter method for "arg3" tag attribute. (Mapping set in associated
221 * BeanInfo class.)
222 */
223 public void setArg3Expr(String arg3Expr) {
224 this.arg3Expr = arg3Expr;
225 }
226
227 /**
228 * Setter method for "arg4" tag attribute. (Mapping set in associated
229 * BeanInfo class.)
230 */
231 public void setArg4Expr(String arg4Expr) {
232 this.arg4Expr = arg4Expr;
233 }
234
235 /**
236 * Setter method for "bundle" tag attribute. (Mapping set in associated
237 * BeanInfo class.)
238 */
239 public void setBundleExpr(String bundleExpr) {
240 this.bundleExpr = bundleExpr;
241 }
242
243 /**
244 * Setter method for "key" tag attribute. (Mapping set in associated
245 * BeanInfo class.)
246 */
247 public void setKeyExpr(String keyExpr) {
248 this.keyExpr = keyExpr;
249 }
250
251 /**
252 * Setter method for "locale" tag attribute. (Mapping set in associated
253 * BeanInfo class.)
254 */
255 public void setLocaleExpr(String localeExpr) {
256 this.localeExpr = localeExpr;
257 }
258
259 /**
260 * Setter method for "name" tag attribute. (Mapping set in associated
261 * BeanInfo class.)
262 */
263 public void setNameExpr(String nameExpr) {
264 this.nameExpr = nameExpr;
265 }
266
267 /**
268 * Setter method for "property" tag attribute. (Mapping set in associated
269 * BeanInfo class.)
270 */
271 public void setPropertyExpr(String propertyExpr) {
272 this.propertyExpr = propertyExpr;
273 }
274
275 /**
276 * Setter method for "scope" tag attribute. (Mapping set in associated
277 * BeanInfo class.)
278 */
279 public void setScopeExpr(String scopeExpr) {
280 this.scopeExpr = scopeExpr;
281 }
282
283 /**
284 * Resets attribute values for tag reuse.
285 */
286 public void release() {
287 super.release();
288 setArg0Expr(null);
289 setArg1Expr(null);
290 setArg2Expr(null);
291 setArg3Expr(null);
292 setArg4Expr(null);
293 setBundleExpr(null);
294 setKeyExpr(null);
295 setLocaleExpr(null);
296 setNameExpr(null);
297 setPropertyExpr(null);
298 setScopeExpr(null);
299 }
300
301 /**
302 * Process the start tag.
303 *
304 * @throws JspException if a JSP exception has occurred
305 */
306 public int doStartTag() throws JspException {
307 evaluateExpressions();
308
309 return (super.doStartTag());
310 }
311
312 /**
313 * Processes all attribute values which use the JSTL expression evaluation
314 * engine to determine their values.
315 *
316 * @throws JspException if a JSP exception has occurred
317 */
318 private void evaluateExpressions()
319 throws JspException {
320 String string = null;
321
322 if ((string =
323 EvalHelper.evalString("arg0", getArg0Expr(), this, pageContext)) != null) {
324 setArg0(string);
325 }
326
327 if ((string =
328 EvalHelper.evalString("arg1", getArg1Expr(), this, pageContext)) != null) {
329 setArg1(string);
330 }
331
332 if ((string =
333 EvalHelper.evalString("arg2", getArg2Expr(), this, pageContext)) != null) {
334 setArg2(string);
335 }
336
337 if ((string =
338 EvalHelper.evalString("arg3", getArg3Expr(), this, pageContext)) != null) {
339 setArg3(string);
340 }
341
342 if ((string =
343 EvalHelper.evalString("arg4", getArg4Expr(), this, pageContext)) != null) {
344 setArg4(string);
345 }
346
347 if ((string =
348 EvalHelper.evalString("bundle", getBundleExpr(), this,
349 pageContext)) != null) {
350 setBundle(string);
351 }
352
353 if ((string =
354 EvalHelper.evalString("key", getKeyExpr(), this, pageContext)) != null) {
355 setKey(string);
356 }
357
358 if ((string =
359 EvalHelper.evalString("locale", getLocaleExpr(), this,
360 pageContext)) != null) {
361 setLocale(string);
362 }
363
364 if ((string =
365 EvalHelper.evalString("name", getNameExpr(), this, pageContext)) != null) {
366 setName(string);
367 }
368
369 if ((string =
370 EvalHelper.evalString("property", getPropertyExpr(), this,
371 pageContext)) != null) {
372 setProperty(string);
373 }
374
375 if ((string =
376 EvalHelper.evalString("scope", getScopeExpr(), this, pageContext)) != null) {
377 setScope(string);
378 }
379 }
380 }