<ui:repeat> nao consegue acessar atributos do objeto

olá pessoal! Nao estou conseguindo entender o que está acontecendo no meu projeto. fui tentar utilizar o componente ui:repeat no meu codigo e nao estou conseguindo faze-lo funcionar, criei um exemplo (http://www.jsftoolbox.com/documentation/facelets/10-TagReference/facelets-ui-repeat.html) para ver seu funcionamento só que nao rolou. é o seguinte: eu consigo acessar minha lista na paginaBean, porem nao acesso nada atraves da VAR do componente.

model:

public class Product {

    private String name;

    public Product(String nome) {
        this.name = nome;
    }
    
    public String getNome() {
        return name;
    }

    public void setNome(String nome) {
        this.name = nome;
    }   
}

bean:

@ManagedBean(name="productBean")
@SessionScoped
public class ProductBean {
    
    private List<Product> products;
    
    public List<Product> getProducts() {
        if (products == null) {
            products = new ArrayList<Product>();
            products.add(new Product("Tennis Racket"));
            products.add(new Product("Baseball Bat"));
            products.add(new Product("Hockey Stick"));
        }
        return products;
    }   
}

view

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <h:form>
            <ul>
                <ui:repeat value="#{productBean.products}" var="p">
                    <li><h:outputText value="#{?????}" /></li>
                </ui:repeat>                    
            </ul>
        </h:form>
    </h:body>
</html>

no lugar dos ??? iria p.name certo ? ai esta o problema, nao consigo “enchergar” nem o “p” nem a propriedade. se alguem tiver alguma ideia. vlw

Olá amigo, repare no código da sua classe produto:

    public String getNome() {  
        return name;  
    }  

O JSF, em sua primeira fase do ciclo de vida, restaura a view pelas propriedades caso ela já tenha sido criado. Ou seja, referencie para o getter e não para o atributo.

<ui:repeat value="#{productBean.products}" var="p">  
    <li><h:outputText value="#{p.nome}" /></li>  
</ui:repeat> 

Um abraço, boa sorte.

Desculpa minha ignorância, mas meu problema é na propria IDE, eu nao teria que acessar os atributos? como uso entao esse componente?

Assim:

@ManagedBean
public void MeuBean{
  private String nome;
  public String getNomeDoFulano(){
   return nome;
  }
}

Quando você faz o binding no JSF, na verdade, você deve faze-lo pro getter e não pro atributo.

<h:outputText value="#{meuBean.nomeDoFulano}" />

obrigado pela explicacao kilate, porem aí esta o problema, eu sei que nao acesso o atributo mas sim o getter, a questao é que nao “enxergo” o getter na pagina xhtml. consigo usar h:datatable, h:selectonemenu, porem o ui:repeat nao ta rolando.

Na verdade, nome do seu get é getNome

pois eh, o problema ta na minha view cara. nao nos meu metodos.