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 ответа
Я считаю, что вам не нужно взламывать EL вместе с вашим кодом, я думаю, что в некоторых случаях это может быть проблематично.
Существует довольно много библиотек, предлагающих аналогичные функции (известные как шаблоны), попробуйте, например, Velocity или FreeMarker. Они чрезвычайно просты в использовании и имеют довольно много вариантов.