问题描述
您可以使用以下任何项目:
解决方法
自从 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);
}
}
您能为我的实施方案提出更多替代方案吗?