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