rendered paste bodyimport java.io.IOException;import java.io.Serializable;import javax.servlet.jsp.JspException;import javax.servlet.jsp.JspTagException;import javax.servlet.jsp.tagext.Tag;import org.springframework.expression.Expression;import org.springframework.expression.spel.standard.SpelExpressionParser;import org.springframework.web.util.ExpressionEvaluationUtils;import com.sun.tools.example.debug.expr.ExpressionParser;public class ExpressionTag extends FooTag implements Tag, Serializable { private static final long serialVersionUID = 1L; private Tag parent = null; private String expression = null; private String test; public int doEndTag() throws JspException { return EVAL_PAGE; } public int doStartTag() throws JspException { try { // tried this with no luck //SpelExpressionParser parser = new SpelExpressionParser(); //Expression exp = parser.parseExpression(expression); //String message = exp.getValue(getPageContext()) + ""; //getPageContext().getOut().write(message); test = ExpressionEvaluationUtils.evaluateString("expression", expression, getPageContext()); getPageContext().getOut().write(test); // test is null so it // prints nothing } catch (IOException e) { throw new JspTagException(e.getMessage()); } return SKIP_BODY; } public Tag getParent() { return parent; } public void release() { setPageContext(null); parent = null; expression = null; } public void setParent(Tag t) { parent = t; } public String getExpression() { return expression; } public void setExpression(String expression) { this.expression = expression; /*try { this.expression = ExpressionEvaluationUtils.evaluateString("expression", expression, getPageContext()); } catch (Exception err) { }*/ } public String getTest() { return test; } public void setTest(String test) { this.test = test; } }