我们都知道构建时间和渲染时间之间的区别。将<ui:include>
标签(构建时间)放在<ui:repeat>
(渲染时间)中绝对不是一个好主意,但相反的做法可以吗?我们可以在<ui:include>
内使用<ui:repeat>
吗?
两种方式都可以。
将
<ui:include>
标签(构建时间)放在<ui:repeat>
(渲染时间)中绝对不是一个好主意
这不是真的。您可以安全地这样做。唯一的限制是你不能在<ui:include>
src
中使用<ui:repeat>
var
。换句话说,以下方法将不起作用:
<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:include>
内使用<ui:repeat>
吗?
您也可以安全地这样做。如果您遇到问题,只需按右上角的"提问"按钮。
另请参阅:
- JSTL in JSF2 Facelets...意义?
- 动态<ui:include>取决于<ui:repeat>不包含任何内容