1 /* 2 * $Id: ELStrutsTag.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.StrutsTag; 24 import org.apache.strutsel.taglib.utils.EvalHelper; 25 26 import javax.servlet.jsp.JspException; 27 28 /** 29 * Define a scripting variable that exposes the requested Struts internal 30 * configuraton object. <p> This class is a subclass of the class 31 * <code>org.apache.struts.taglib.bean.StrutsTag</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 ELStrutsTag extends StrutsTag { 39 /** 40 * Instance variable mapped to "id" tag attribute. (Mapping set in 41 * associated BeanInfo class.) 42 */ 43 private String idExpr; 44 45 /** 46 * Instance variable mapped to "formBean" tag attribute. (Mapping set in 47 * associated BeanInfo class.) 48 */ 49 private String formBeanExpr; 50 51 /** 52 * Instance variable mapped to "forward" tag attribute. (Mapping set in 53 * associated BeanInfo class.) 54 */ 55 private String forwardExpr; 56 57 /** 58 * Instance variable mapped to "mapping" tag attribute. (Mapping set in 59 * associated BeanInfo class.) 60 */ 61 private String mappingExpr; 62 63 /** 64 * Getter method for "id" tag attribute. (Mapping set in associated 65 * BeanInfo class.) 66 */ 67 public String getIdExpr() { 68 return (idExpr); 69 } 70 71 /** 72 * Getter method for "formBean" tag attribute. (Mapping set in associated 73 * BeanInfo class.) 74 */ 75 public String getFormBeanExpr() { 76 return (formBeanExpr); 77 } 78 79 /** 80 * Getter method for "forward" tag attribute. (Mapping set in associated 81 * BeanInfo class.) 82 */ 83 public String getForwardExpr() { 84 return (forwardExpr); 85 } 86 87 /** 88 * Getter method for "mapping" tag attribute. (Mapping set in associated 89 * BeanInfo class.) 90 */ 91 public String getMappingExpr() { 92 return (mappingExpr); 93 } 94 95 /** 96 * Setter method for "id" tag attribute. (Mapping set in associated 97 * BeanInfo class.) 98 */ 99 public void setIdExpr(String idExpr) { 100 this.idExpr = idExpr; 101 } 102 103 /** 104 * Setter method for "formBean" tag attribute. (Mapping set in associated 105 * BeanInfo class.) 106 */ 107 public void setFormBeanExpr(String formBeanExpr) { 108 this.formBeanExpr = formBeanExpr; 109 } 110 111 /** 112 * Setter method for "forward" tag attribute. (Mapping set in associated 113 * BeanInfo class.) 114 */ 115 public void setForwardExpr(String forwardExpr) { 116 this.forwardExpr = forwardExpr; 117 } 118 119 /** 120 * Setter method for "mapping" tag attribute. (Mapping set in associated 121 * BeanInfo class.) 122 */ 123 public void setMappingExpr(String mappingExpr) { 124 this.mappingExpr = mappingExpr; 125 } 126 127 /** 128 * Resets attribute values for tag reuse. 129 */ 130 public void release() { 131 super.release(); 132 setIdExpr(null); 133 setFormBeanExpr(null); 134 setForwardExpr(null); 135 setMappingExpr(null); 136 } 137 138 /** 139 * Process the start tag. 140 * 141 * @throws JspException if a JSP exception has occurred 142 */ 143 public int doStartTag() throws JspException { 144 evaluateExpressions(); 145 146 return (super.doStartTag()); 147 } 148 149 /** 150 * Processes all attribute values which use the JSTL expression evaluation 151 * engine to determine their values. 152 * 153 * @throws JspException if a JSP exception has occurred 154 */ 155 private void evaluateExpressions() 156 throws JspException { 157 String string = null; 158 159 if ((string = 160 EvalHelper.evalString("id", getIdExpr(), this, pageContext)) != null) { 161 setId(string); 162 } 163 164 if ((string = 165 EvalHelper.evalString("formBean", getFormBeanExpr(), this, 166 pageContext)) != null) { 167 setFormBean(string); 168 } 169 170 if ((string = 171 EvalHelper.evalString("forward", getForwardExpr(), this, 172 pageContext)) != null) { 173 setForward(string); 174 } 175 176 if ((string = 177 EvalHelper.evalString("mapping", getMappingExpr(), this, 178 pageContext)) != null) { 179 setMapping(string); 180 } 181 } 182 }