Разница между Spring Expression Language (SpEL) и Unified Expression Language (UEL)

в чем разница между Spring Expression Language (SpEL) и Unified Expression Language (UEL)?

В официальной документации Spring говорится:

«Синтаксис языка подобен Unified EL, но предлагает дополнительные функции, в первую очередь вызов метода и базовые функции шаблонов строк». (см. http://static.springsource.org/spring/docs/current/spring-framework-reference/html/expressions.html)

Какие именно различия в вызове метода?

Есть еще отличия?

Спасибо, Матиас


person hueller    schedule 28.08.2012    source источник


Ответы (1)


Unified EL - это настоящий язык шаблонов, он не предлагает возможности вызывать методы. Язык позволяет вам получить доступ только к свойствам компонентов Java, но не к их методам. EL 2.2 позволяет вам вызывать методы, поэтому этот аргумент больше не действителен.

Spring El - мощный язык, поскольку он позволяет вызывать методы и конструкторы, выполнять назначения и фильтровать коллекции. Если вы используете Spring EL в своих представлениях JSP, используя тег spring: eval, вы также автоматически получаете преимущества преобразователей / форматеров Spring. Это отличный инструмент, но его следует использовать с осторожностью, потому что из-за него очень заманчиво помещать в ваши представления всевозможную логику приложения.

Помимо представлений JSP, Spring EL может использоваться в других частях среды Spring, например, в выражениях безопасности с аннотацией @PreAuthorize.

person Jasper Krijgsman    schedule 12.10.2012
comment
Это не обязательно так, поскольку UL позволяет вам вызывать методы: docs.oracle. ru / javaee / 5 / tutorial / doc / bnahq.html. - person ricardoespsanto; 14.02.2014
comment
@Ricky; В EL 2.1 невозможно вызывать методы напрямую. Это стало возможным с обновлением 2.2 (часть сервлета 3.0). Я обновлю свой ответ. - person Jasper Krijgsman; 17.02.2014