1 /* 2 * $Id: ELAddTag.java 471754 2006-11-06 14:55:09Z husted $ 3 * 4 * Licensed to the Apache Software Foundation (ASF) under one 5 * or more contributor license agreements. See the NOTICE file 6 * distributed with this work for additional information 7 * regarding copyright ownership. The ASF licenses this file 8 * to you under the Apache License, Version 2.0 (the 9 * "License"); you may not use this file except in compliance 10 * with the License. You may obtain a copy of the License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, 15 * software distributed under the License is distributed on an 16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 17 * KIND, either express or implied. See the License for the 18 * specific language governing permissions and limitations 19 * under the License. 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 }