1 /* 2 * $Id: ELBaseTag.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.html; 22 23 import org.apache.struts.taglib.html.BaseTag; 24 import org.apache.strutsel.taglib.utils.EvalHelper; 25 26 import javax.servlet.jsp.JspException; 27 28 /** 29 * Renders an HTML <base> element with an href attribute pointing to the 30 * absolute location of the enclosing JSP page. This tag is only valid when 31 * nested inside a head tag body. The presence of this tag allows the browser 32 * to resolve relative URL's to images, CSS stylesheets and other resources 33 * in a manner independent of the URL used to call the ActionServlet. <p> This 34 * class is a subclass of the class <code>org.apache.struts.taglib.html.BaseTag</code> 35 * which provides most of the described functionality. This subclass allows 36 * all attribute values to be specified as expressions utilizing the 37 * JavaServer Pages Standard Library expression language. 38 * 39 * @version $Rev: 471754 $ 40 */ 41 public class ELBaseTag extends BaseTag { 42 /** 43 * Instance variable mapped to "target" tag attribute. (Mapping set in 44 * associated BeanInfo class.) 45 */ 46 private String targetExpr; 47 48 /** 49 * Instance variable mapped to "server" tag attribute. (Mapping set in 50 * associated BeanInfo class.) 51 */ 52 private String serverExpr; 53 54 /** 55 * Instance variable mapped to "ref" tag attribute. (Mapping set in 56 * associated BeanInfo class.) 57 */ 58 private String refExpr; 59 60 /** 61 * Getter method for "target" tag attribute. (Mapping set in associated 62 * BeanInfo class.) 63 */ 64 public String getTargetExpr() { 65 return (targetExpr); 66 } 67 68 /** 69 * Getter method for "server" tag attribute. (Mapping set in associated 70 * BeanInfo class.) 71 */ 72 public String getServerExpr() { 73 return (serverExpr); 74 } 75 76 /** 77 * Getter method for "ref" tag attribute. (Mapping set in associated 78 * BeanInfo class.) 79 */ 80 public String getRefExpr() { 81 return (refExpr); 82 } 83 84 /** 85 * Setter method for "target" tag attribute. (Mapping set in associated 86 * BeanInfo class.) 87 */ 88 public void setTargetExpr(String targetExpr) { 89 this.targetExpr = targetExpr; 90 } 91 92 /** 93 * Setter method for "server" tag attribute. (Mapping set in associated 94 * BeanInfo class.) 95 */ 96 public void setServerExpr(String serverExpr) { 97 this.serverExpr = serverExpr; 98 } 99 100 /** 101 * Setter method for "ref" tag attribute. (Mapping set in associated 102 * BeanInfo class.) 103 */ 104 public void setRefExpr(String refExpr) { 105 this.refExpr = refExpr; 106 } 107 108 /** 109 * Resets attribute values for tag reuse. 110 */ 111 public void release() { 112 super.release(); 113 setTargetExpr(null); 114 setServerExpr(null); 115 setRefExpr(null); 116 } 117 118 /** 119 * Process the start tag. 120 * 121 * @throws JspException if a JSP exception has occurred 122 */ 123 public int doStartTag() throws JspException { 124 evaluateExpressions(); 125 126 return (super.doStartTag()); 127 } 128 129 /** 130 * Processes all attribute values which use the JSTL expression evaluation 131 * engine to determine their values. 132 * 133 * @throws JspException if a JSP exception has occurred 134 */ 135 private void evaluateExpressions() 136 throws JspException { 137 String string = null; 138 139 if ((string = 140 EvalHelper.evalString("target", getTargetExpr(), this, 141 pageContext)) != null) { 142 setTarget(string); 143 } 144 145 if ((string = 146 EvalHelper.evalString("server", getServerExpr(), this, 147 pageContext)) != null) { 148 setServer(string); 149 } 150 151 if ((string = 152 EvalHelper.evalString("ref", getRefExpr(), this, pageContext)) != null) { 153 setRef(string); 154 } 155 } 156 }