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.html;
22
23 import org.apache.struts.taglib.html.MessagesTag;
24 import org.apache.strutsel.taglib.utils.EvalHelper;
25
26 import javax.servlet.jsp.JspException;
27
28 /**
29 * Custom tag that iterates the elements of a message collection. It defaults
30 * to retrieving the messages from <code>Action.ERROR_KEY</code>, but if the
31 * message attribute is set to true then the messages will be retrieved from
32 * <code>Action.MESSAGE_KEY</code>. This is an alternative to the default
33 * <code>ErrorsTag</code>. <p> This class is a subclass of the class
34 * <code>org.apache.struts.taglib.html.MessagesTag</code> which provides most
35 * of the described functionality. This subclass allows all attribute values
36 * to be specified as expressions utilizing the JavaServer Pages Standard
37 * Library expression language.
38 *
39 * @version $Rev: 471754 $
40 */
41 public class ELMessagesTag extends MessagesTag {
42 /**
43 * Instance variable mapped to "id" tag attribute. (Mapping set in
44 * associated BeanInfo class.)
45 */
46 private String idExpr;
47
48 /**
49 * Instance variable mapped to "bundle" tag attribute. (Mapping set in
50 * associated BeanInfo class.)
51 */
52 private String bundleExpr;
53
54 /**
55 * Instance variable mapped to "locale" tag attribute. (Mapping set in
56 * associated BeanInfo class.)
57 */
58 private String localeExpr;
59
60 /**
61 * Instance variable mapped to "name" tag attribute. (Mapping set in
62 * associated BeanInfo class.)
63 */
64 private String nameExpr;
65
66 /**
67 * Instance variable mapped to "property" tag attribute. (Mapping set in
68 * associated BeanInfo class.)
69 */
70 private String propertyExpr;
71
72 /**
73 * Instance variable mapped to "header" tag attribute. (Mapping set in
74 * associated BeanInfo class.)
75 */
76 private String headerExpr;
77
78 /**
79 * Instance variable mapped to "footer" tag attribute. (Mapping set in
80 * associated BeanInfo class.)
81 */
82 private String footerExpr;
83
84 /**
85 * Instance variable mapped to "message" tag attribute. (Mapping set in
86 * associated BeanInfo class.)
87 */
88 private String messageExpr;
89
90 /**
91 * Getter method for "id" tag attribute. (Mapping set in associated
92 * BeanInfo class.)
93 */
94 public String getIdExpr() {
95 return (idExpr);
96 }
97
98 /**
99 * Getter method for "bundle" tag attribute. (Mapping set in associated
100 * BeanInfo class.)
101 */
102 public String getBundleExpr() {
103 return (bundleExpr);
104 }
105
106 /**
107 * Getter method for "locale" tag attribute. (Mapping set in associated
108 * BeanInfo class.)
109 */
110 public String getLocaleExpr() {
111 return (localeExpr);
112 }
113
114 /**
115 * Getter method for "name" tag attribute. (Mapping set in associated
116 * BeanInfo class.)
117 */
118 public String getNameExpr() {
119 return (nameExpr);
120 }
121
122 /**
123 * Getter method for "property" tag attribute. (Mapping set in associated
124 * BeanInfo class.)
125 */
126 public String getPropertyExpr() {
127 return (propertyExpr);
128 }
129
130 /**
131 * Getter method for "header" tag attribute. (Mapping set in associated
132 * BeanInfo class.)
133 */
134 public String getHeaderExpr() {
135 return (headerExpr);
136 }
137
138 /**
139 * Getter method for "footer" tag attribute. (Mapping set in associated
140 * BeanInfo class.)
141 */
142 public String getFooterExpr() {
143 return (footerExpr);
144 }
145
146 /**
147 * Getter method for "message" tag attribute. (Mapping set in associated
148 * BeanInfo class.)
149 */
150 public String getMessageExpr() {
151 return (messageExpr);
152 }
153
154 /**
155 * Setter method for "id" tag attribute. (Mapping set in associated
156 * BeanInfo class.)
157 */
158 public void setIdExpr(String idExpr) {
159 this.idExpr = idExpr;
160 }
161
162 /**
163 * Setter method for "bundle" tag attribute. (Mapping set in associated
164 * BeanInfo class.)
165 */
166 public void setBundleExpr(String bundleExpr) {
167 this.bundleExpr = bundleExpr;
168 }
169
170 /**
171 * Setter method for "locale" tag attribute. (Mapping set in associated
172 * BeanInfo class.)
173 */
174 public void setLocaleExpr(String localeExpr) {
175 this.localeExpr = localeExpr;
176 }
177
178 /**
179 * Setter method for "name" tag attribute. (Mapping set in associated
180 * BeanInfo class.)
181 */
182 public void setNameExpr(String nameExpr) {
183 this.nameExpr = nameExpr;
184 }
185
186 /**
187 * Setter method for "property" tag attribute. (Mapping set in associated
188 * BeanInfo class.)
189 */
190 public void setPropertyExpr(String propertyExpr) {
191 this.propertyExpr = propertyExpr;
192 }
193
194 /**
195 * Setter method for "header" tag attribute. (Mapping set in associated
196 * BeanInfo class.)
197 */
198 public void setHeaderExpr(String headerExpr) {
199 this.headerExpr = headerExpr;
200 }
201
202 /**
203 * Setter method for "footer" tag attribute. (Mapping set in associated
204 * BeanInfo class.)
205 */
206 public void setFooterExpr(String footerExpr) {
207 this.footerExpr = footerExpr;
208 }
209
210 /**
211 * Setter method for "message" tag attribute. (Mapping set in associated
212 * BeanInfo class.)
213 */
214 public void setMessageExpr(String messageExpr) {
215 this.messageExpr = messageExpr;
216 }
217
218 /**
219 * Resets attribute values for tag reuse.
220 */
221 public void release() {
222 super.release();
223 setIdExpr(null);
224 setBundleExpr(null);
225 setLocaleExpr(null);
226 setNameExpr(null);
227 setPropertyExpr(null);
228 setHeaderExpr(null);
229 setFooterExpr(null);
230 setMessageExpr(null);
231 }
232
233 /**
234 * Process the start tag.
235 *
236 * @throws JspException if a JSP exception has occurred
237 */
238 public int doStartTag() throws JspException {
239 evaluateExpressions();
240
241 return (super.doStartTag());
242 }
243
244 /**
245 * Processes all attribute values which use the JSTL expression evaluation
246 * engine to determine their values.
247 *
248 * @throws JspException if a JSP exception has occurred
249 */
250 private void evaluateExpressions()
251 throws JspException {
252 String string = null;
253
254 if ((string =
255 EvalHelper.evalString("id", getIdExpr(), this, pageContext)) != null) {
256 setId(string);
257 }
258
259 if ((string =
260 EvalHelper.evalString("bundle", getBundleExpr(), this,
261 pageContext)) != null) {
262 setBundle(string);
263 }
264
265 if ((string =
266 EvalHelper.evalString("locale", getLocaleExpr(), this,
267 pageContext)) != null) {
268 setLocale(string);
269 }
270
271 if ((string =
272 EvalHelper.evalString("name", getNameExpr(), this, pageContext)) != null) {
273 setName(string);
274 }
275
276 if ((string =
277 EvalHelper.evalString("property", getPropertyExpr(), this,
278 pageContext)) != null) {
279 setProperty(string);
280 }
281
282 if ((string =
283 EvalHelper.evalString("header", getHeaderExpr(), this,
284 pageContext)) != null) {
285 setHeader(string);
286 }
287
288 if ((string =
289 EvalHelper.evalString("footer", getFooterExpr(), this,
290 pageContext)) != null) {
291 setFooter(string);
292 }
293
294 if ((string =
295 EvalHelper.evalString("message", getMessageExpr(), this,
296 pageContext)) != null) {
297 setMessage(string);
298 }
299 }
300 }