Spring 已弃用的 ExpressionEvaluationUtils 评估方法的替代方法?

Max*_*lov 5 java spring jsp

由于类:org.springframework.web.util.ExpressionEvaluationUtils 自 Spring 3.x 版本以来已被弃用,我正在我的 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);
    }

}
Run Code Online (Sandbox Code Playgroud)

您能否为我的实现提出更多替代方案?