Question

I have a JavaEE web application, as it will be deployed to some kind of application servers such as weblogic websphere tomcat etc. so the EL api will be avaiable for me, but I don't need to care about what EL implementation is used.

I want to use EL in my java code, not jsp pages, to translate some simple expression to value constants, like this:

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));
    }

however, in this example, I used JUEL library, so I need to access JUEL implementation classes. my question is how Can I do the same thing but just use classes in javax.el package ?

Do I need to implement my own ELContext and VariableMapper and other abstract classes ?

Was it helpful?

Solution 2

MVEL solve my problem, it's flexible and powerful!

OTHER TIPS

I believe you don't need to hack EL together with your code, I think in some cases that might be problemmatic.

There are quite a lot of libraries offering similar functionalities (known as Template Engines), try Velocity or FreeMarker for example. They are extremely easy to use and have quite a lot of options.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top