我有一个JavaEE Web应用程序,因为它将被部署到某些应用程序服务器,例如weblogic websphere tomcat等,所以EL api对我来说是可用的,但我不需要关心EL实现是什么使用。
我想在我的java代码中使用EL,而不是jsp页面,将一些简单的表达式转换为值常量,如下所示:
public static void main(String[] args) {
// TODO Auto-generated method stub
ExpressionFactory ef = new ExpressionFactoryImpl();
SimpleContext ec = new SimpleContext();
ec.setVariable("value", ef.createValueExpression("0", String.class));
ValueExpression ve = ef.createValueExpression(ec, "${value == \"1\" ? \"enabled\" : \"disabled\"}", String.class);
System.out.println(ve.getValue(ec));
}
但是,在这个例子中,我使用了JUEL库,所以我需要访问JUEL实现类。我的问题是如何才能做同样的事情,只是使用javax.el
包中的类?
我是否需要实现自己的ELContext
和VariableMapper
以及其他抽象类?
答案 0 :(得分:1)
我相信您不需要将EL与您的代码一起破解,我认为在某些情况下可能存在问题。
有很多库提供类似的功能(称为模板引擎),例如尝试Velocity或FreeMarker。它们非常易于使用,并且有很多选择。
答案 1 :(得分:0)
MVEL解决了我的问题,它灵活而强大!