自从 Spring 3.x发行版以来,不推荐使用org.springframework.web.util.ExpressionEvaluationUtils类,因此我正在Java代码中寻找EL表达式评估的另一种方法。
阅读JSP 2.x文档后,我确实设法构造了一种替代方法:
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 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 = ef.createValueExpression(elContext, exp, resultClass); return val.getValue(elContext); } }
您能为我的实施方案提出更多替代方案吗?
您可以使用以下任何项目: