【问题标题】:Dynamic JSF page with <h:dataTable> and Divs [duplicate]带有 <h:dataTable> 和 Divs 的动态 JSF 页面 [重复]
【发布时间】:2015-12-19 11:14:04
【问题描述】:

我正在处理读取列表列表的动态 JSF 页面。 这个列表是从数据库加载的,然后元素的数量可以改变。

我需要为arrayList 中的每个元素创建一个div,然后将信息加载到一个表中。 (一个 div => 一个表)

(伪代码 jsp)

    %
    foreach(List Auxli: MainList){
    int count=0;
    <div id="count">
    <table>
    //information on auxLI
    </table>
    </div>
    count = count+1;
    }
    %

我不知道如何在 JSF 上完成这项工作,因为我只有 &lt;h:dataTable&gt; 标记来读取 Bean 上的对象。
我读取了一个包含 ArrayList 的对象,但我不知道该剪切谁来创建 不同的 Divs

有人知道怎么做吗?

谢谢大家

最终解决方案

解决方案是使用两个 &lt;ui:repeat&gt; 和一个 KeySET 元素。这非常重要,因为“重复”不能迭代 MAPS!

 <ui:repeat value="#{main.MAP.keySet().toArray()}" var="item">
<DIV id=#{main.getNumber()}>
<ui:repeat value="#{main.MAP.get(item)}" var="item2">
</DIV>
</UI>
</UI>

第二次重复使用第一个元素从列表中取出我们需要的信息。 我们为列表的每个主要元素获取一个 div,在 DIV 上,我们可以使用这些信息来制作您想要的所有内容!!! 再见

【问题讨论】:

  • &lt;h:dataTable&gt; 本身是一个可迭代的 JSF 组件,在这种情况下,除了适当地使用 varvalue 属性之外,您无需执行任何操作。
  • 我不是在问如何使用 我问的是通过包含更多列表的列表中的数字对象来创建动态 Div。最后我在 上找到了一个可能的解决方案,谢谢,我会在它起作用时做出回答
  • 如果有人投了反对票,请说明“因为”。如果有什么问题,大家都可以学习!!!!

标签: jsf


【解决方案1】:

除非您想使用纯 JSF 进行编码,否则更简单更好的方法是选择开源 JSF 组件库之一。这些库构建在 JSF 之上,并提供了一些复杂的 UI 组件和更好的开箱即用的 AJAX 支持。一个这样的框架是 PrimeFaces,请查看以下链接以了解您要求的功能类型:http://www.primefaces.org/showcase/ui/panel/accordionPanel.xhtml

【讨论】:

  • 如果有人在使用 jsp,他们(希望)使用 jsf 1.2 并且 PF 不支持
  • 我没有使用 Jsp,这是我发现的最简单的解释问题的方法。谢谢大家=)
【解决方案2】:

ui:repeat 标签呢?您可以遍历列表列表并为每次迭代包含一个 dataTable,根据需要声明 div

【讨论】:

  • 不是 JSP 的一部分。它是其后续 Facelets 的一部分。
猜你喜欢
  • 2018-03-19
  • 2018-05-24
  • 1970-01-01
  • 2011-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-08
  • 1970-01-01
相关资源
最近更新 更多