2013-11-19 1 views
1

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

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

+0

FYI: это изначально возможно, так как EL 3.0. – BalusC

ответ

1

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

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

+0

Спасибо за ответ на мой вопрос. На самом деле мне нужен какой-то быстрый и простой интерпретатор выражений в Java. Я никогда не использовал никаких шаблонных двигателей, но кажется, что они не предназначены для использования в качестве интерпретатора выражений? Как бы то ни было, я проверю два упомянутых вами механизма шаблонов. – CaiNiaoCoder

Смежные вопросы