[Resolvido] Chamar método do Managed Bean pelo XHTML

3 respostas
L

E ai pessoal! Beleza?

Estou desenvolvendo uma aplicação em JSF 2.0 / Primefaces 3.2 / JPA e estou com o seguinte problema.
Sabendo do seguinte relacionamento: Uma FaseModelo pode ter um ou vários TreinoModelo.

XHTML:

<p:accordionPanel value="#{mbtreinamentoModelo.fasesModelo}" var="fase">
                <p:tab title="Fase #{fase.sequencia}">
                    // Código omitido 
                    <p:tabView id="tabView" dynamic="true" effect="fade" 
                                     effectDuration="normal" value="#{mbtreinamentoModelo.treinos(fase)}" var="treino">
                        <p:tab title="Treino #{treino.sequencia}"> 
                           // Código omitido      
                        </p:tab>
                    </p:tabView>
                </p:tab>  
            </p:accordionPanel>

Na chamada value="#{mbtreinamentoModelo.treinos(fase)}" eu estou obtendo um erro:

value="#{mbtreinamentoModelo.treinos(fase)}": Method treinos not found

Porém, no meu Managed Bean, eu possuo o método referente a essa chamada, vejam:

Managed Bean

public List<FasesModelo> getFasesModelo() {
        return this.fasesModelo;
    }

    public List<TreinoModelo> getTreinos(FasesModelo fase) {
        return new TreinoModeloFacade().getByFase(fase);
    }

Alguém já passou por tal problema?
Será que a abordagem que estou adotando possui falhas ou eu deveria adotar outra estratégia para resolver meu problema?

Obrigado desde já!

3 Respostas

T

Retira o get do , getTreinos(FasesModelo fase) e deixa o t minúsculo q esta no seu xhtml chamadas de métodos são case sensitivo

L

Valeu pela resposta tiago.vt

Deu certo.

Porém, o que eu ainda não compreendi é que na chamada #{mbtreinamentoModelo.fasesModelo} no Managed Bean o método é getFasesModelo() com o get mesmo e funciona.
Mas quando fiz #{mbtreinamentoModelo.treinos(fase) com o get não funciona. Na verdade a regra é que, quando existe um parâmetro na assinatura do método, a chamada deve ser exatamente igual???

Obrigado mais uma vez!

T

para o xhtml poder acessar os atributos do managed bean vc precisa gera os gets e sets

Criado 22 de abril de 2012
Ultima resposta 22 de abr. de 2012
Respostas 3
Participantes 2