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.JavascriptValidatorTag;
24 import org.apache.strutsel.taglib.utils.EvalHelper;
25
26 import javax.servlet.jsp.JspException;
27
28 /**
29 * Custom tag that generates JavaScript for client side validation based on
30 * the validation rules loaded by the <code>ValidatorPlugIn</code> defined in
31 * the struts-config.xml file. <p> This class is a subclass of the class
32 * <code>org.apache.struts.taglib.html.JavascriptValidatorTag</code> which
33 * provides most of the described functionality. This subclass allows all
34 * attribute values to be specified as expressions utilizing the JavaServer
35 * Pages Standard Library expression language.
36 *
37 * @version $Rev: 471754 $
38 */
39 public class ELJavascriptValidatorTag extends JavascriptValidatorTag {
40 /**
41 * Instance variable mapped to "cdata" tag attribute. (Mapping set in
42 * associated BeanInfo class.)
43 */
44 private String cdataExpr;
45
46 /**
47 * Instance variable mapped to "dynamicJavascript" tag attribute. (Mapping
48 * set in associated BeanInfo class.)
49 */
50 private String dynamicJavascriptExpr;
51
52 /**
53 * Instance variable mapped to "formName" tag attribute. (Mapping set in
54 * associated BeanInfo class.)
55 */
56 private String formNameExpr;
57
58 /**
59 * Instance variable mapped to "method" tag attribute. (Mapping set in
60 * associated BeanInfo class.)
61 */
62 private String methodExpr;
63
64 /**
65 * Instance variable mapped to "page" tag attribute. (Mapping set in
66 * associated BeanInfo class.)
67 */
68 private String pageExpr;
69
70 /**
71 * Instance variable mapped to "scriptLanguage" tag attribute. (Mapping
72 * set in associated BeanInfo class.)
73 */
74 private String scriptLanguageExpr;
75
76 /**
77 * Instance variable mapped to "src" tag attribute. (Mapping set in
78 * associated BeanInfo class.)
79 */
80 private String srcExpr;
81
82 /**
83 * Instance variable mapped to "staticJavascript" tag attribute. (Mapping
84 * set in associated BeanInfo class.)
85 */
86 private String staticJavascriptExpr;
87
88 /**
89 * Instance variable mapped to "htmlComment" tag attribute. (Mapping set
90 * in associated BeanInfo class.)
91 */
92 private String htmlCommentExpr;
93
94 /**
95 * Instance variable mapped to "bundle" tag attribute. (Mapping set in
96 * associated BeanInfo class.)
97 */
98 private String bundleExpr;
99
100 /**
101 * Getter method for "cdata" tag attribute. (Mapping set in associated
102 * BeanInfo class.)
103 */
104 public String getCdataExpr() {
105 return (cdataExpr);
106 }
107
108 /**
109 * Getter method for "dynamicJavascript" tag attribute. (Mapping set in
110 * associated BeanInfo class.)
111 */
112 public String getDynamicJavascriptExpr() {
113 return (dynamicJavascriptExpr);
114 }
115
116 /**
117 * Getter method for "formName" tag attribute. (Mapping set in associated
118 * BeanInfo class.)
119 */
120 public String getFormNameExpr() {
121 return (formNameExpr);
122 }
123
124 /**
125 * Getter method for "method" tag attribute. (Mapping set in associated
126 * BeanInfo class.)
127 */
128 public String getMethodExpr() {
129 return (methodExpr);
130 }
131
132 /**
133 * Getter method for "page" tag attribute. (Mapping set in associated
134 * BeanInfo class.)
135 */
136 public String getPageExpr() {
137 return (pageExpr);
138 }
139
140 /**
141 * Getter method for "scriptLanguage" tag attribute. (Mapping set in
142 * associated BeanInfo class.)
143 */
144 public String getScriptLanguageExpr() {
145 return (scriptLanguageExpr);
146 }
147
148 /**
149 * Getter method for "src" tag attribute. (Mapping set in associated
150 * BeanInfo class.)
151 */
152 public String getSrcExpr() {
153 return (srcExpr);
154 }
155
156 /**
157 * Getter method for "staticJavascript" tag attribute. (Mapping set in
158 * associated BeanInfo class.)
159 */
160 public String getStaticJavascriptExpr() {
161 return (staticJavascriptExpr);
162 }
163
164 /**
165 * Getter method for "htmlComment" tag attribute. (Mapping set in
166 * associated BeanInfo class.)
167 */
168 public String getHtmlCommentExpr() {
169 return (htmlCommentExpr);
170 }
171
172 /**
173 * Getter method for "bundle" tag attribute. (Mapping set in associated
174 * BeanInfo class.)
175 */
176 public String getBundleExpr() {
177 return (bundleExpr);
178 }
179
180 /**
181 * Setter method for "cdata" tag attribute. (Mapping set in associated
182 * BeanInfo class.)
183 */
184 public void setCdataExpr(String cdataExpr) {
185 this.cdataExpr = cdataExpr;
186 }
187
188 /**
189 * Setter method for "dynamicJavascript" tag attribute. (Mapping set in
190 * associated BeanInfo class.)
191 */
192 public void setDynamicJavascriptExpr(String dynamicJavascriptExpr) {
193 this.dynamicJavascriptExpr = dynamicJavascriptExpr;
194 }
195
196 /**
197 * Setter method for "formName" tag attribute. (Mapping set in associated
198 * BeanInfo class.)
199 */
200 public void setFormNameExpr(String formNameExpr) {
201 this.formNameExpr = formNameExpr;
202 }
203
204 /**
205 * Setter method for "method" tag attribute. (Mapping set in associated
206 * BeanInfo class.)
207 */
208 public void setMethodExpr(String methodExpr) {
209 this.methodExpr = methodExpr;
210 }
211
212 /**
213 * Setter method for "page" tag attribute. (Mapping set in associated
214 * BeanInfo class.)
215 */
216 public void setPageExpr(String pageExpr) {
217 this.pageExpr = pageExpr;
218 }
219
220 /**
221 * Setter method for "scriptLanguage" tag attribute. (Mapping set in
222 * associated BeanInfo class.)
223 */
224 public void setScriptLanguageExpr(String scriptLanguageExpr) {
225 this.scriptLanguageExpr = scriptLanguageExpr;
226 }
227
228 /**
229 * Setter method for "src" tag attribute. (Mapping set in associated
230 * BeanInfo class.)
231 */
232 public void setSrcExpr(String srcExpr) {
233 this.srcExpr = srcExpr;
234 }
235
236 /**
237 * Setter method for "staticJavascript" tag attribute. (Mapping set in
238 * associated BeanInfo class.)
239 */
240 public void setStaticJavascriptExpr(String staticJavascriptExpr) {
241 this.staticJavascriptExpr = staticJavascriptExpr;
242 }
243
244 /**
245 * Setter method for "htmlComment" tag attribute. (Mapping set in
246 * associated BeanInfo class.)
247 */
248 public void setHtmlCommentExpr(String htmlCommentExpr) {
249 this.htmlCommentExpr = htmlCommentExpr;
250 }
251
252 /**
253 * Setter method for "bundle" tag attribute. (Mapping set in associated
254 * BeanInfo class.)
255 */
256 public void setBundleExpr(String bundleExpr) {
257 this.bundleExpr = bundleExpr;
258 }
259
260 /**
261 * Resets attribute values for tag reuse.
262 */
263 public void release() {
264 super.release();
265 setCdataExpr(null);
266 setDynamicJavascriptExpr(null);
267 setFormNameExpr(null);
268 setMethodExpr(null);
269 setPageExpr(null);
270 setScriptLanguageExpr(null);
271 setSrcExpr(null);
272 setStaticJavascriptExpr(null);
273 setHtmlCommentExpr(null);
274 setBundleExpr(null);
275 }
276
277 /**
278 * Process the start tag.
279 *
280 * @throws JspException if a JSP exception has occurred
281 */
282 public int doStartTag() throws JspException {
283 evaluateExpressions();
284
285 return (super.doStartTag());
286 }
287
288 /**
289 * Processes all attribute values which use the JSTL expression evaluation
290 * engine to determine their values.
291 *
292 * @throws JspException if a JSP exception has occurred
293 */
294 private void evaluateExpressions()
295 throws JspException {
296 String string = null;
297 Integer integer = null;
298 Boolean bool = null;
299
300 if ((string =
301 EvalHelper.evalString("cdata", getCdataExpr(), this, pageContext)) != null) {
302 setCdata(string);
303 }
304
305 if ((string =
306 EvalHelper.evalString("dynamicJavascript",
307 getDynamicJavascriptExpr(), this, pageContext)) != null) {
308 setDynamicJavascript(string);
309 }
310
311 if ((string =
312 EvalHelper.evalString("formName", getFormNameExpr(), this,
313 pageContext)) != null) {
314 setFormName(string);
315 }
316
317 if ((string =
318 EvalHelper.evalString("method", getMethodExpr(), this,
319 pageContext)) != null) {
320 setMethod(string);
321 }
322
323 if ((integer =
324 EvalHelper.evalInteger("page", getPageExpr(), this, pageContext)) != null) {
325 setPage(integer.intValue());
326 }
327
328 if ((bool =
329 EvalHelper.evalBoolean("scriptLanguage",
330 getScriptLanguageExpr(), this, pageContext)) != null) {
331 setScriptLanguage(bool.booleanValue());
332 }
333
334 if ((string =
335 EvalHelper.evalString("src", getSrcExpr(), this, pageContext)) != null) {
336 setSrc(string);
337 }
338
339 if ((string =
340 EvalHelper.evalString("staticJavascript",
341 getStaticJavascriptExpr(), this, pageContext)) != null) {
342 setStaticJavascript(string);
343 }
344
345 if ((string =
346 EvalHelper.evalString("htmlComment", getHtmlCommentExpr(),
347 this, pageContext)) != null) {
348 setHtmlComment(string);
349 }
350
351 if ((string =
352 EvalHelper.evalString("bundle", getBundleExpr(), this,
353 pageContext)) != null) {
354 setBundle(string);
355 }
356 }
357 }