2

我有一个 JavaEE Web 应用程序,因为它将部署到某种应用程序服务器,例如 weblogic websphere tomcat 等。所以 EL api 对我来说是可用的,但我不需要关心使用什么 EL 实现。

我想在我的 java 代码而不是 jsp 页面中使用 EL 来将一些简单的表达式转换为值常量,如下所示:

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包中的类?

我需要实现自己的ELContextVariableMapper其他抽象类吗?

4

2 回答 2

1

我相信您不需要将 EL 与您的代码一起破解,我认为在某些情况下这可能是有问题的。

有很多库提供类似的功能(称为模板引擎),例如尝试VelocityFreeMarker。它们非常易于使用,并且有很多选择。

于 2013-11-19T09:28:29.347 回答
1

MVEL解决了我的问题,它灵活而强大!

于 2013-12-03T08:09:18.977 回答