Java,如何在纯java中使用表达式语言

时间:2013-11-19 08:22:41

标签: java jsp java-ee juel

我有一个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包中的类?

我是否需要实现自己的ELContextVariableMapper以及其他抽象类?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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