/**
* 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.SetPropertyTag;
/**
* Adds EL support to SetPropertyTag.
* @author Fabrizio Giustina
* @version $Revision: 8904 $ ($Author: charles $)
*/
public class ELSetPropertyTag extends SetPropertyTag
{
/**
* D1597A17A6.
*/
private static final long serialVersionUID = 899149338534L;
/**
* Expression for the "name" tag attribute.
*/
private String nameExpr;
/**
* Expression for the "value" tag attribute.
*/
private String valueExpr;
/**
* @see org.displaytag.tags.SetPropertyTag#setName(java.lang.String)
*/
public void setName(String value)
{
nameExpr = value;
}
/**
* @see org.displaytag.tags.SetPropertyTag#setValue(java.lang.String)
*/
public void setValue(String value)
{
valueExpr = 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);
super.setName(eval.evalString("name", nameExpr)); //$NON-NLS-1$
if (valueExpr != null)
{
super.setValue(eval.evalString("value", valueExpr)); //$NON-NLS-1$
}
}
/**
* @see javax.servlet.jsp.tagext.Tag#release()
*/
public void release()
{
super.release();
this.nameExpr = null;
this.valueExpr = null;
}
}