由于类: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)
您能否为我的实现提出更多替代方案?
| 归档时间: |
|
| 查看次数: |
4012 次 |
| 最近记录: |