Java, как использовать язык выражений в чистом Java

У меня есть веб-приложение JavaEE, так как оно будет развернуто на некоторых серверах приложений, таких как weblogic websphere tomcat и т. Д., Поэтому ELI API будет доступен для меня, но мне не нужно заботиться о том, какая реализация EL используется.

Я хочу использовать EL в своем коде Java, а не на страницах 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 а другие абстрактные классы?

2 ответа

Решение

MVEL решит мою проблему, он гибкий и мощный!

Я считаю, что вам не нужно взламывать EL вместе с вашим кодом, я думаю, что в некоторых случаях это может быть проблематично.

Существует довольно много библиотек, предлагающих аналогичные функции (известные как шаблоны), попробуйте, например, Velocity или FreeMarker. Они чрезвычайно просты в использовании и имеют довольно много вариантов.

Другие вопросы по тегам