自从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);
}
}
你能提供更多关于我的实现的替代方案吗?