В чем разница между "$ {foo.bar}" и "# {foo.bar}"? - PullRequest
4 голосов
/ 21 августа 2009

Я могу использовать объекты из Java Beans в файлах .jsp с помощью языка выражений (EL). Поэтому я могу получить свое значение, набрав $ {foo.bar}. Но я также могу использовать # {foo.bar}.

Кто-нибудь может объяснить разницу или предоставить ссылку со значимой информацией?

Ответы [ 2 ]

17 голосов
/ 21 августа 2009

Это описано в спецификации JSP 2.1 .

В Java EE #{expr} используется для отложенной оценки и ${expr} для немедленной оценки . Выражения с отложенным выражением (#{expr}) могут использоваться только с атрибутами тегов, которые их принимают. Это соглашение Java EE, но другие домены могут навязывать свое собственное значение (например, если вы хотите использовать EL в своих собственных шаблонах ).

6 голосов
/ 21 августа 2009

#{foo.bar} синтаксис взят из языка выражений JSF. Некоторая яркая искра подумала, что было бы неплохо использовать синтаксис, отличный от JSP EL (т.е. ${foo.bar}) Я думаю, что некоторые JSP-контейнеры терпимы к этому забору и позволяют использовать любой из них.

...