Мне все еще неясно, как использовать JSF immediate evaluation
против deferred evaluation
, главным образом потому, что в онлайн-примерах почти никогда не используется первый метод.
Я видел немало примеров JSF, в том числе содержащиеся в http://docs.oracle.com/javaee/6/tutorial/doc/, и меня немного озадачивает тот факт, что я почти всегда вижу примеры только с #{}
вместо ${}
, даже когда все, что мы делаем, это читаем бобовое свойство.
Насколько я понимаю эти два применения, ${}
можно использовать только для чтения свойств компонента, а не для записи. Мне еще предстоит найти четкое объяснение точной разницы между оценкой immediate
и deferred
в отношении жизненного цикла JSF и того, какую разницу это будет иметь для чтения свойств bean-компонента.
Если все всегда используют #{}
для чтения свойств bean-компонента, когда вы порекомендуете использовать ${}
?
Итак, резюмируя:
- Почему все предпочитают
#{}
${}
при чтении свойств компонента? - Когда бы вы рекомендовали использовать
${}
вместо#{}
? - Можете ли вы привести пример, когда использование
${}
будет иметь другой результат, чем использование#{}
(и можете ли вы объяснить, почему результат отличается)?