h:outputStylesheet 里面 ui:repeat
h:outputStylesheet inside ui:repeat
我正在尝试为 ArrayList 的每个元素输出样式表 link。此代码不产生任何结果:
<ui:repeat value="#{includer.css}" var="ss">
<h:outputStylesheet name="#{ss}" library="css" />
</ui:repeat>
但是,如果我将 ArrayList 中的字符串更改为完整路径并将 h:outputStylesheet 替换为纯 html,例如:
<ui:repeat value="#{includer.css}" var="ss">
<link type="text/css" rel="stylesheet" href="${ss}" />
</ui:repeat>
然后它按预期工作。这个问题是我在一些 css 文件中有一些 EL 表达式,而且它们似乎没有被评估,我假设是因为我像那样直接引用它们。
感谢您的任何见解。
<h:outputStylesheet>
(和 <h:outputScript>
)需要在视图构建期间存在,以便让 JSF 资源管理正确拾取它们。然而,<ui:repeat>
仅在视图渲染期间运行,JSF 执行重定位操作(移动到头部底部或 body 等)为时已晚。
替换为<c:forEach>
。
<c:forEach items="#{includer.css}" var="ss">
<h:outputStylesheet name="#{ss}" library="css" />
</c:forEach>
另请参阅:
与具体问题无关,库名css
是错误的。仔细阅读What is the JSF resource library for and how should it be used?
我正在尝试为 ArrayList 的每个元素输出样式表 link。此代码不产生任何结果:
<ui:repeat value="#{includer.css}" var="ss">
<h:outputStylesheet name="#{ss}" library="css" />
</ui:repeat>
但是,如果我将 ArrayList 中的字符串更改为完整路径并将 h:outputStylesheet 替换为纯 html,例如:
<ui:repeat value="#{includer.css}" var="ss">
<link type="text/css" rel="stylesheet" href="${ss}" />
</ui:repeat>
然后它按预期工作。这个问题是我在一些 css 文件中有一些 EL 表达式,而且它们似乎没有被评估,我假设是因为我像那样直接引用它们。
感谢您的任何见解。
<h:outputStylesheet>
(和 <h:outputScript>
)需要在视图构建期间存在,以便让 JSF 资源管理正确拾取它们。然而,<ui:repeat>
仅在视图渲染期间运行,JSF 执行重定位操作(移动到头部底部或 body 等)为时已晚。
替换为<c:forEach>
。
<c:forEach items="#{includer.css}" var="ss">
<h:outputStylesheet name="#{ss}" library="css" />
</c:forEach>
另请参阅:
与具体问题无关,库名css
是错误的。仔细阅读What is the JSF resource library for and how should it be used?