Он был помещен в область видимости EL по умолчанию при построении дерева представлений (тогда оцениваются все атрибуты binding
- и атрибуты обработчиков тегов, таких как JSTL <c:xxx>
и JSF <f:xxx>
-).Это показывается обычными средствами EL во время рендеринга дерева представлений.Рендеринг дерева представлений происходит после построения дерева представлений, поэтому оно работает таким образом.Дело не в том, что этот код работает «строка за строкой», как вы, вероятно, ожидаете от источника.
Я не могу указать вам одну ссылку, где она была указана, поскольку ее нет.Вам нужно прочитать обе спецификации EL и JSF по отдельности и сделать 1 + 1 = 2.
Кстати, чтобы избежать путаницы среди новыхразработчики и чтобы избежать конфликтов с существующими переменными в областях EL, вы можете использовать java.util.HashMap
в области запроса, который был объявлен следующим образом в faces-config.xml
:
<managed-bean>
<description>Holder of all component bindings.</description>
<managed-bean-name>components</managed-bean-name>
<managed-bean-class>java.util.HashMap</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
и используется следующим образом:
#{components.aaa.id}
<h:inputText id="txt1" binding="#{components.aaa}"/>
, что более самодокументировано.
См. также: