1

Mojarra 2.1.29

I've read that usually it's not necessary to use EL to generate id-attribute dynamically. I also know that the id-attribute resolved at view-building phase. But in our projects we have to write some Selenium tests which are goign to use some html-attribute in the generated markup. So, I decided to specify the id-attribute dynamically. How can I do that for the following <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>

Maybe I should specify another attribute fo Selenium instead?

Tiny
  • 26,031
  • 99
  • 315
  • 583
user3663882
  • 6,497
  • 9
  • 44
  • 85

1 Answers1

2

If you provide a fixed id like the following.

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

The element you need will have ids generated as,

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

and so on.

Tiny
  • 26,031
  • 99
  • 315
  • 583
Mooolo
  • 398
  • 1
  • 7