如何在facelet中获取当前ui:fragment的索引?

时间:2012-01-30 18:25:49

标签: jsf-2 facelets

<ui:fragment rendered="#{...}">
<p class="#{current.index eq 0 ? '' : 'someClass'}">
  Some Text
</p>
</ui:fragment>
.....
<ui:fragment ...>
<p class="#{current.index eq 0 ? '' : 'someClass'}">
  ...
</p>
....
</ui:fragment>

如何在上面的facelet中获取当前ui:fragment的索引?

2 个答案:

答案 0 :(得分:1)

硬编码他们而不是使用像<ui:repeat>这样的迭代组件,因此范围内没有可用的索引。也可以对索引进行硬编码,或者使用像<ui:repeat>这样的迭代组件,其中索引可以通过varStatus引用获得。

<ui:repeat value="#{bean.list}" var="item" varStatus="loop">
    <p>#{loop.index}</p>
</ui:repeat>

答案 1 :(得分:0)

如果我在p标签中使用硬编码文本,

<ui:fragment rendered="#{...}">
<p class="dummyClass someClass">
   Text 1
</p>
</ui:fragment>
<ui:fragment rendered="#{...}">
<p class="dummyClass someClass">
   Text 2
</p>
</ui:fragment>
.........

然后使用jQuery

$('.dummyClass').each(function() {
    if($(this).index() == 1){
        $(this).removeClass('someClass');
    }
});

请注意,没有参数的.index()会为第一个元素返回1。