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.DefinitionTag;
24 import org.apache.strutsel.taglib.utils.EvalHelper;
25
26 import javax.servlet.jsp.JspException;
27
28 /**
29 * This is the tag handler for <tiles:definition>, which defines a tiles
30 * (or template / component). Definition is put in requested context and can
31 * be used in <tiles:insert>. <p> This class is a subclass of the class
32 * <code>org.apache.struts.taglib.tiles.DefinitionTag</code> which provides
33 * most of the described functionality. This subclass allows all attribute
34 * values to be specified as expressions utilizing the JavaServer Pages
35 * Standard Library expression language.
36 *
37 * @version $Rev: 471754 $
38 */
39 public class ELDefinitionTag extends DefinitionTag {
40 /**
41 * Instance variable mapped to "id" tag attribute. (Mapping set in
42 * associated BeanInfo class.)
43 */
44 private String idExpr;
45
46 /**
47 * Instance variable mapped to "scope" tag attribute. (Mapping set in
48 * associated BeanInfo class.)
49 */
50 private String scopeExpr;
51
52 /**
53 * Instance variable mapped to "template" tag attribute. (Mapping set in
54 * associated BeanInfo class.)
55 */
56 private String templateExpr;
57
58 /**
59 * Instance variable mapped to "page" tag attribute. (Mapping set in
60 * associated BeanInfo class.)
61 */
62 private String pageExpr;
63
64 /**
65 * Instance variable mapped to "role" tag attribute. (Mapping set in
66 * associated BeanInfo class.)
67 */
68 private String roleExpr;
69
70 /**
71 * Instance variable mapped to "extends" tag attribute. (Mapping set in
72 * associated BeanInfo class.)
73 */
74 private String extendsExpr;
75
76 /**
77 * Getter method for "id" tag attribute. (Mapping set in associated
78 * BeanInfo class.)
79 */
80 public String getIdExpr() {
81 return (idExpr);
82 }
83
84 /**
85 * Getter method for "scope" tag attribute. (Mapping set in associated
86 * BeanInfo class.)
87 */
88 public String getScopeExpr() {
89 return (scopeExpr);
90 }
91
92 /**
93 * Getter method for "template" tag attribute. (Mapping set in associated
94 * BeanInfo class.)
95 */
96 public String getTemplateExpr() {
97 return (templateExpr);
98 }
99
100 /**
101 * Getter method for "page" tag attribute. (Mapping set in associated
102 * BeanInfo class.)
103 */
104 public String getPageExpr() {
105 return (pageExpr);
106 }
107
108 /**
109 * Getter method for "role" tag attribute. (Mapping set in associated
110 * BeanInfo class.)
111 */
112 public String getRoleExpr() {
113 return (roleExpr);
114 }
115
116 /**
117 * Getter method for "extends" tag attribute. (Mapping set in associated
118 * BeanInfo class.)
119 */
120 public String getExtendsExpr() {
121 return (extendsExpr);
122 }
123
124 /**
125 * Setter method for "id" tag attribute. (Mapping set in associated
126 * BeanInfo class.)
127 */
128 public void setIdExpr(String idExpr) {
129 this.idExpr = idExpr;
130 }
131
132 /**
133 * Setter method for "scope" tag attribute. (Mapping set in associated
134 * BeanInfo class.)
135 */
136 public void setScopeExpr(String scopeExpr) {
137 this.scopeExpr = scopeExpr;
138 }
139
140 /**
141 * Setter method for "template" tag attribute. (Mapping set in associated
142 * BeanInfo class.)
143 */
144 public void setTemplateExpr(String templateExpr) {
145 this.templateExpr = templateExpr;
146 }
147
148 /**
149 * Setter method for "page" tag attribute. (Mapping set in associated
150 * BeanInfo class.)
151 */
152 public void setPageExpr(String pageExpr) {
153 this.pageExpr = pageExpr;
154 }
155
156 /**
157 * Setter method for "role" tag attribute. (Mapping set in associated
158 * BeanInfo class.)
159 */
160 public void setRoleExpr(String roleExpr) {
161 this.roleExpr = roleExpr;
162 }
163
164 /**
165 * Setter method for "extends" tag attribute. (Mapping set in associated
166 * BeanInfo class.)
167 */
168 public void setExtendsExpr(String extendsExpr) {
169 this.extendsExpr = extendsExpr;
170 }
171
172 /**
173 * Resets attribute values for tag reuse.
174 */
175 public void release() {
176 super.release();
177 setIdExpr(null);
178 setScopeExpr(null);
179 setTemplateExpr(null);
180 setPageExpr(null);
181 setRoleExpr(null);
182 setExtendsExpr(null);
183 }
184
185 /**
186 * Process the start tag.
187 *
188 * @throws JspException if a JSP exception has occurred
189 */
190 public int doStartTag() throws JspException {
191 evaluateExpressions();
192
193 return (super.doStartTag());
194 }
195
196 /**
197 * Processes all attribute values which use the JSTL expression evaluation
198 * engine to determine their values.
199 *
200 * @throws JspException if a JSP exception has occurred
201 */
202 private void evaluateExpressions()
203 throws JspException {
204 String string = null;
205
206 if ((string =
207 EvalHelper.evalString("id", getIdExpr(), this, pageContext)) != null) {
208 setId(string);
209 }
210
211 if ((string =
212 EvalHelper.evalString("scope", getScopeExpr(), this, pageContext)) != null) {
213 setScope(string);
214 }
215
216 if ((string =
217 EvalHelper.evalString("template", getTemplateExpr(), this,
218 pageContext)) != null) {
219 setTemplate(string);
220 }
221
222 if ((string =
223 EvalHelper.evalString("page", getPageExpr(), this, pageContext)) != null) {
224 setPage(string);
225 }
226
227 if ((string =
228 EvalHelper.evalString("role", getRoleExpr(), this, pageContext)) != null) {
229 setRole(string);
230 }
231
232 if ((string =
233 EvalHelper.evalString("extends", getExtendsExpr(), this,
234 pageContext)) != null) {
235 setExtends(string);
236 }
237 }
238 }