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.tiles;
22
23 import org.apache.struts.tiles.taglib.AddTag;
24 import org.apache.strutsel.taglib.utils.EvalHelper;
25
26 import javax.servlet.jsp.JspException;
27
28 /**
29 * Adds an element to the surrounding list tag. Same syntax as
30 * <code><put></code>. <p> This class is a subclass of the class
31 * <code>org.apache.struts.taglib.tiles.AddTag</code> which provides most of
32 * the described functionality. This subclass allows all attribute values to
33 * be specified as expressions utilizing the JavaServer Pages Standard Library
34 * expression language.
35 *
36 * @version $Rev: 471754 $
37 */
38 public class ELAddTag extends AddTag {
39 /**
40 * Instance variable mapped to "value" tag attribute. (Mapping set in
41 * associated BeanInfo class.)
42 */
43 private String valueExpr;
44
45 /**
46 * Instance variable mapped to "content" tag attribute. (Mapping set in
47 * associated BeanInfo class.)
48 */
49 private String contentExpr;
50
51 /**
52 * Instance variable mapped to "direct" tag attribute. (Mapping set in
53 * associated BeanInfo class.)
54 */
55 private String directExpr;
56
57 /**
58 * Instance variable mapped to "type" tag attribute. (Mapping set in
59 * associated BeanInfo class.)
60 */
61 private String typeExpr;
62
63 /**
64 * Instance variable mapped to "beanName" tag attribute. (Mapping set in
65 * associated BeanInfo class.)
66 */
67 private String beanNameExpr;
68
69 /**
70 * Instance variable mapped to "beanProperty" tag attribute. (Mapping set
71 * in associated BeanInfo class.)
72 */
73 private String beanPropertyExpr;
74
75 /**
76 * Instance variable mapped to "beanScope" tag attribute. (Mapping set in
77 * associated BeanInfo class.)
78 */
79 private String beanScopeExpr;
80
81 /**
82 * Instance variable mapped to "role" tag attribute. (Mapping set in
83 * associated BeanInfo class.)
84 */
85 private String roleExpr;
86
87 /**
88 * Getter method for "value" tag attribute. (Mapping set in associated
89 * BeanInfo class.)
90 */
91 public String getValueExpr() {
92 return (valueExpr);
93 }
94
95 /**
96 * Getter method for "content" tag attribute. (Mapping set in associated
97 * BeanInfo class.)
98 */
99 public String getContentExpr() {
100 return (contentExpr);
101 }
102
103 /**
104 * Getter method for "direct" tag attribute. (Mapping set in associated
105 * BeanInfo class.)
106 */
107 public String getDirectExpr() {
108 return (directExpr);
109 }
110
111 /**
112 * Getter method for "type" tag attribute. (Mapping set in associated
113 * BeanInfo class.)
114 */
115 public String getTypeExpr() {
116 return (typeExpr);
117 }
118
119 /**
120 * Getter method for "beanName" tag attribute. (Mapping set in associated
121 * BeanInfo class.)
122 */
123 public String getBeanNameExpr() {
124 return (beanNameExpr);
125 }
126
127 /**
128 * Getter method for "beanProperty" tag attribute. (Mapping set in
129 * associated BeanInfo class.)
130 */
131 public String getBeanPropertyExpr() {
132 return (beanPropertyExpr);
133 }
134
135 /**
136 * Getter method for "beanScope" tag attribute. (Mapping set in associated
137 * BeanInfo class.)
138 */
139 public String getBeanScopeExpr() {
140 return (beanScopeExpr);
141 }
142
143 /**
144 * Getter method for "role" tag attribute. (Mapping set in associated
145 * BeanInfo class.)
146 */
147 public String getRoleExpr() {
148 return (roleExpr);
149 }
150
151 /**
152 * Setter method for "value" tag attribute. (Mapping set in associated
153 * BeanInfo class.)
154 */
155 public void setValueExpr(String valueExpr) {
156 this.valueExpr = valueExpr;
157 }
158
159 /**
160 * Setter method for "content" tag attribute. (Mapping set in associated
161 * BeanInfo class.)
162 */
163 public void setContentExpr(String contentExpr) {
164 this.contentExpr = contentExpr;
165 }
166
167 /**
168 * Setter method for "direct" tag attribute. (Mapping set in associated
169 * BeanInfo class.)
170 */
171 public void setDirectExpr(String directExpr) {
172 this.directExpr = directExpr;
173 }
174
175 /**
176 * Setter method for "type" tag attribute. (Mapping set in associated
177 * BeanInfo class.)
178 */
179 public void setTypeExpr(String typeExpr) {
180 this.typeExpr = typeExpr;
181 }
182
183 /**
184 * Setter method for "beanName" tag attribute. (Mapping set in associated
185 * BeanInfo class.)
186 */
187 public void setBeanNameExpr(String beanNameExpr) {
188 this.beanNameExpr = beanNameExpr;
189 }
190
191 /**
192 * Setter method for "beanProperty" tag attribute. (Mapping set in
193 * associated BeanInfo class.)
194 */
195 public void setBeanPropertyExpr(String beanPropertyExpr) {
196 this.beanPropertyExpr = beanPropertyExpr;
197 }
198
199 /**
200 * Setter method for "beanScope" tag attribute. (Mapping set in associated
201 * BeanInfo class.)
202 */
203 public void setBeanScopeExpr(String beanScopeExpr) {
204 this.beanScopeExpr = beanScopeExpr;
205 }
206
207 /**
208 * Setter method for "role" tag attribute. (Mapping set in associated
209 * BeanInfo class.)
210 */
211 public void setRoleExpr(String roleExpr) {
212 this.roleExpr = roleExpr;
213 }
214
215 /**
216 * Resets attribute values for tag reuse.
217 */
218 public void release() {
219 super.release();
220 setValueExpr(null);
221 setContentExpr(null);
222 setDirectExpr(null);
223 setTypeExpr(null);
224 setBeanNameExpr(null);
225 setBeanPropertyExpr(null);
226 setBeanScopeExpr(null);
227 setRoleExpr(null);
228 }
229
230 /**
231 * Process the start tag.
232 *
233 * @throws JspException if a JSP exception has occurred
234 */
235 public int doStartTag() throws JspException {
236 evaluateExpressions();
237
238 return (super.doStartTag());
239 }
240
241 /**
242 * Processes all attribute values which use the JSTL expression evaluation
243 * engine to determine their values.
244 *
245 * @throws JspException if a JSP exception has occurred
246 */
247 private void evaluateExpressions()
248 throws JspException {
249 String string = null;
250
251 if ((string =
252 EvalHelper.evalString("value", getValueExpr(), this, pageContext)) != null) {
253 setValue(string);
254 }
255
256 if ((string =
257 EvalHelper.evalString("content", getContentExpr(), this,
258 pageContext)) != null) {
259 setContent(string);
260 }
261
262 if ((string =
263 EvalHelper.evalString("direct", getDirectExpr(), this,
264 pageContext)) != null) {
265 setDirect(string);
266 }
267
268 if ((string =
269 EvalHelper.evalString("type", getTypeExpr(), this, pageContext)) != null) {
270 setType(string);
271 }
272
273 if ((string =
274 EvalHelper.evalString("beanName", getBeanNameExpr(), this,
275 pageContext)) != null) {
276 setBeanName(string);
277 }
278
279 if ((string =
280 EvalHelper.evalString("beanProperty", getBeanPropertyExpr(),
281 this, pageContext)) != null) {
282 setBeanProperty(string);
283 }
284
285 if ((string =
286 EvalHelper.evalString("beanScope", getBeanScopeExpr(), this,
287 pageContext)) != null) {
288 setBeanScope(string);
289 }
290
291 if ((string =
292 EvalHelper.evalString("role", getRoleExpr(), this, pageContext)) != null) {
293 setRole(string);
294 }
295 }
296 }