gpt4 book ai didi

java - 在 JSF 1.1 中使用 JSTL

转载 作者:行者123 更新时间:2023-11-30 06:35:32 25 4
gpt4 key购买 nike

我正在尝试将 JSTL 与 JSF 1.1 一起使用。以下代码给我带来了问题:

<c:forEach var="key" items="${names}">
<h:column>
<f:facet name="header">
<h:outputText value="#{key}"/>
</f:facet>
<h:outputText value="#{key}"/>
</h:column>
</c:forEach>

其中 names 是一个 String 列表。名称是包含在表中显示的数据中的 map 的关键,即我正在尝试完成这样的事情:

<h:outputText value="#{data.fooMap[key]}"/>

此代码在 h:dataTable(名称的迭代和显示)之外工作正常,但是当我将它放入表中时,什么也没有显示。

有人知道如何解决这个问题吗?
是否有一个 JSF 标记可以遍历 h:dataTable 中的列表?

如有任何帮助,我们将不胜感激!

最佳答案

JSF 和 JSTL 并不像您对编码所期望的那样同步运行。在 View 构建期间,首先从上到下运行的是 JSTL,结果是没有任何 JSTL 标记的纯 JSF 组件树。然后,在 View 呈现期间,JSF 再次从上到下运行以生成 HTML。

如果${names}定义为 var<h:dataTable>那么当 JSTL 执行其工作时,它根本不可用。

您需要转向不同的解决方案(在支持 bean 中动态填充),或者采用允许生成动态列的第 3 方组件库。例如 RichFaces 有一个 rich:columns 正是为此目的而设计的组件。

关于java - 在 JSF 1.1 中使用 JSTL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5991954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com