当前位置: 首页 > 面试题库 >

JSF 2 ui:repeat:将div中的每n个项目分组

堵鸿光
2023-03-14
问题内容

给定一个我想安排在这样的页面上的集合:

<!-- Group 0 -->
<div style="float:left;">
    <div><!-- Item 0 --></div>
    <div><!-- Item 1 --></div>

    <!-- ... -->

    <div><! -- Item n - 1 --></div>
</div>
<!-- Group 1 -->
<div style="float:left;">
    <div><!-- Item n     --></div>
    <div><!-- Item n + 1 --></div>

    <!-- ... -->

    <div><! -- Item 2n - 1 --></div>
</div>

<!-- ... -->

<!-- Group g -->
    <div><!-- Item gn     --></div>
    <div><!-- Item gn + 1 --></div>

    <!-- ... -->

    <div><! -- Item (g + 1)n - 1 --></div>
</div>

我可以使用某种技巧在ui:repeat或其他技术( 最好 是创建自定义组件之外)中进行此操作吗?


问题答案:

您可以根据varStatus属性检查当前循环,并</div><div style="float: left;">在必要时打印中介。

例如,每3个项目:

<div style="float: left;">
    <ui:repeat value="#{bean.list}" var="item" varStatus="loop">
        <h:outputText value="&lt;/div&gt;&lt;div style='float: left;'&gt;" escape="false" rendered="#{not loop.first and loop.index % 3 == 0}" />
        <div>#{item}</div>
    </ui:repeat>
</div>

请注意,不可能将其包装为纯HTML到中<h:panelGroup>,因为它会导致格式不正确的XML,因此将<h:outputText escape="false">其作为XML实体。

*根据评论进行 *更新<div>这是仅定义一次的另一种方法,可能不太混乱:

<ui:repeat value="#{bean.list}" var="item" varStatus="loop">
    <h:outputText value="&lt;div style='float: left;'&gt;" escape="false" rendered="#{loop.index % 3 == 0}" />
    <div>#{item}</div>
    <h:outputText value="&lt;/div&gt;" escape="false" rendered="#{loop.last or (loop.index + 1) % 3 == 0}" />
</ui:repeat>


 类似资料:
  • 给定一个我想在这样的页面上排列的集合: 在ui中是否有某种技巧可以用来实现这一点:重复或使用其他技术,最好不要创建自定义组件?

  • 问题内容: | uId | title | amount | makers | widgets | 1 richard 998 xcorp sprocket 2 swiss 995 ycorp framitz 3 ricky 90 zcorp flobber 4 ricky2 798 xcorp framitz 1 lilrick 390 xcorp sprocket 1 brie 200 mco

  • 问题内容: 我遇到了我认为应该是一个非常简单的问题。 我需要将arrayList中的每个项目与列表中的其他所有项目进行比较,而无需将项目与其自身进行比较。它不像调用equals()比较那样简单,它涉及一些自定义逻辑,我在下面的代码中省略了这些自定义逻辑。而且,ArrayList不应以任何方式更改。 我似乎遇到的问题是,一旦进入第二个循环,我就不知道是否有另一个对象要与之比较(因为它是一个可变大小的

  • 错误日志中得代码段: 编辑:添加的XML文件在res/layout文件夹中的每个XML文件中都会出现问题。可抽屉文件夹工作良好!下面是XML文件的一个片段:

  • 问题内容: 我正在尝试用Python编写Haskel函数’splitEvery’。这是它的定义: 这个的基本版本工作正常,但是我想要一个可以与生成器表达式,列表和迭代器一起使用的版本。 并且 ,如果有一个生成器作为输入,则应该返回一个生成器作为输出! 测验 当前实施 这是我当前拥有的代码,但不适用于简单的列表。 此代码不适用于生成器表达式(感谢软糖修复该表达式): 必须有一个简单的代码来进行拆分。

  • 如果您有这样的字符串: < code >【hello world】这是【最好的。家]是个好地方。 如何仅提取括号[]中的每个单词(由空格分隔)。现在我有这个工作 https://regex101.com/r/Tgokeq/2 哪个返回: 你好世界 最好的。家 但我想要: 你好 世界 该 最好的 。主页 PS:我知道我可以在一个foreach中做字符串拆分,但我不想要在正则表达式本身中使用它,就像这