package org.xdams.utility; import javax.el.ELContext; import javax.el.ExpressionFactory; import javax.el.ValueExpression; import javax.servlet.jsp.JspApplicationContext; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspFactory; import javax.servlet.jsp.PageContext; public class ExpressionEvaluationUtils { public static final String EXPRESSION_PREFIX = "${"; public static final String EXPRESSION_SUFFIX = "}"; public static boolean isExpressionLanguage(String value) { return (value != null && value.contains(EXPRESSION_PREFIX)); } public static Object evaluate(String exp, Class<?> resultClass, PageContext pageContext) throws JspException { if (pageContext == null) { return exp; } ELContext elContext = pageContext.getELContext(); JspFactory jf = JspFactory.getDefaultFactory(); JspApplicationContext jac = jf.getJspApplicationContext(pageContext.getServletContext()); ExpressionFactory ef = jac.getExpressionFactory(); ValueExpression val = null; try { val = ef.createValueExpression(elContext, exp, resultClass); } catch (Exception e) { return exp; } return val.getValue(elContext); } }