是否可以在ui中使用EL:重复?

时间:2015-07-31 08:28:02

标签: jsf jsf-2 el uirepeat

Mojarra 2.1.29

我已经读过,通常没有必要动态使用EL生成id - 属性。我也知道id属性在view-building阶段得到了解决。但是在我们的项目中,我们必须编写一些Selenium测试,这些测试需要在生成的标记中使用一些html属性。所以,我决定动态地指定id属性。我如何为以下<ui:repeat>执行此操作:

@ManagedBean
@SessionScoped
public class Bean{

    private List<Integer> values;
    //GET, SET
    public Bean(){
        values = Arrays.asList(1,2,5,7,8,9);
    }
}
<ui:repeat value="#{bean.values}" var="value">
    <h:outputText id="#{value}" /> <!-- not legal, resolved to null -->
</ui:repeat>

也许我应该为Selenium指定另一个属性?

1 个答案:

答案 0 :(得分:2)

如果您提供固定的id,请执行以下操作。

<ui:repeat value="#{bean.values}" var="value">
    <h:outputText id="elementId" />
</ui:repeat>

您需要的元素将生成id

parentId:0:elementId
parentId:1:elementId
parentId:2:elementId

等等。