/** * Licensed under the Artistic License; you may not use this file * except in compliance with the License. * You may obtain a copy of the License at * * http://displaytag.sourceforge.net/license.html * * THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ package org.displaytag.tags.el; import javax.servlet.jsp.JspException; import org.displaytag.tags.CaptionTag; /** * Adds EL support to CaptionTag. * @author Fabrizio Giustina * @version $Revision: 907 $ ($Author: fgiust $) */ public class ELCaptionTag extends CaptionTag { /** * D1597A17A6. */ private static final long serialVersionUID = 899149338534L; /** * Expression for the "class" tag attribute. */ private String classExpr; /** * Expression for the "dir" tag attribute. */ private String dirExpr; /** * Expression for the "id" tag attribute. */ private String idExpr; /** * Expression for the "lang" tag attribute. */ private String langExpr; /** * Expression for the "media" tag attribute. */ private String mediaExpr; /** * Expression for the "style" tag attribute. */ private String styleExpr; /** * Expression for the "title" tag attribute. */ private String titleExpr; /** * @see org.displaytag.tags.CaptionTag#setClass(java.lang.String) */ public void setClass(String value) { classExpr = value; } /** * @see org.displaytag.tags.CaptionTag#setDir(java.lang.String) */ public void setDir(String value) { dirExpr = value; } /** * @see javax.servlet.jsp.tagext.TagSupport#setId(java.lang.String) */ public void setId(String value) { idExpr = value; } /** * @see org.displaytag.tags.CaptionTag#setLang(java.lang.String) */ public void setLang(String value) { langExpr = value; } /** * @see org.displaytag.tags.CaptionTag#setMedia(java.lang.String) * @param value EL expression for attribute value */ public void setMedia(String value) { mediaExpr = value; } /** * @see org.displaytag.tags.CaptionTag#setStyle(java.lang.String) */ public void setStyle(String value) { styleExpr = value; } /** * @see org.displaytag.tags.CaptionTag#setTitle(java.lang.String) */ public void setTitle(String value) { titleExpr = value; } /** * @see javax.servlet.jsp.tagext.Tag#doStartTag() */ public int doStartTag() throws JspException { evaluateExpressions(); return super.doStartTag(); } /** * Evaluates the expressions for all the given attributes and pass results up to the parent tag. * @throws JspException for exceptions occurred during evaluation. */ private void evaluateExpressions() throws JspException { ExpressionEvaluator eval = new ExpressionEvaluator(this, pageContext); if (classExpr != null) { super.setClass(eval.evalString("class", classExpr)); //$NON-NLS-1$ } if (dirExpr != null) { super.setDir(eval.evalString("dir", dirExpr)); //$NON-NLS-1$ } if (idExpr != null) { super.setId(eval.evalString("id", idExpr)); //$NON-NLS-1$ } if (langExpr != null) { super.setLang(eval.evalString("lang", langExpr)); //$NON-NLS-1$ } if (mediaExpr != null) { super.setMedia(eval.evalString("media", mediaExpr)); //$NON-NLS-1$ } if (styleExpr != null) { super.setStyle(eval.evalString("style", styleExpr)); //$NON-NLS-1$ } if (titleExpr != null) { super.setTitle(eval.evalString("title", titleExpr)); //$NON-NLS-1$ } } /** * @see javax.servlet.jsp.tagext.Tag#release() */ public void release() { super.release(); this.classExpr = null; this.dirExpr = null; this.idExpr = null; this.langExpr = null; this.mediaExpr = null; this.styleExpr = null; this.titleExpr = null; } }