Мы все знаем разницу между временем сборки и временем рендеринга. Определенно не лучшая идея помещать тег <ui:include>
(время сборки) внутри тега <ui:repeat>
(время рендеринга), но можно ли делать наоборот? Можем ли мы использовать <ui:repeat>
внутри <ui:include>
?
Можно ли использовать ui:repeat внутри ui:include?
Ответы (1)
Оба пути в порядке.
Определенно не лучшая идея помещать тег
<ui:include>
(время сборки) внутри тега<ui:repeat>
(время рендеринга)
Это неправда. Вы можете смело это делать. Единственное ограничение состоит в том, что вы не можете использовать var
из <ui:repeat>
внутри src
из <ui:include>
. Другими словами, следующий подход не будет работать:
<ui:repeat value="#{bean.items}" var="item">
<ui:include src="/WEB-INF/includes/#{item.foo}.xhtml" />
</ui:repeat>
Это будет работать, только если вы замените <ui:repeat>
на <c:forEach>
.
Но если вы этого не делаете, например.
<ui:repeat value="#{bean.items}" var="item">
<ui:include src="/WEB-INF/includes/foo.xhtml">
<ui:param name="foo" value="#{item.foo}" />
</ui:include>
</ui:repeat>
Тогда нет проблем. Все будет работать нормально.
но можно ли сделать наоборот? Можем ли мы использовать
<ui:repeat>
внутри<ui:include>
?
Вы также можете безопасно сделать это. Если вы столкнулись с проблемой, просто нажмите кнопку «Задать вопрос» справа вверху.
Смотрите также:
- JSTL в JSF2 Facelets... имеет смысл?
- Динамический ‹ui:include src› в зависимости от ‹ui :repeat var› ничего не включает
person
BalusC
schedule
18.06.2015