Problema [commandLink e rendered] com JSF Primefaces

Estou com o seguinte problema, tenho um commandoLink dentro de um outputPanel com a propriedade rendered como mostra o código abaixo

<p:panel id="ter">                                    
                                    <p:outputPanel rendered="#{horarioFaces.existeHorario(2, i)}">
                                        [#{horarioFaces.getHorario(2, i).getGrade().getDisciplina().getCodigo()}]
                                        #{horarioFaces.getHorario(2, i).getGrade().getDisciplina().getDisciplina()}
                                        &nbsp;
                                        <p:commandLink  actionListener="#{horarioFaces.deleteHorario()}" update=":form" >
                                            <f:param name="horario" value="#{horarioFaces.getHorario(2, i).getId()}"></f:param>
                                            <p:graphicImage url="/resources/img/delete_16.png"></p:graphicImage>
                                        </p:commandLink>
                                    </p:outputPanel>                                    
                                </p:panel>

O problema acontece que o evento do commandLink não é disparado caso a proprieadade rendered esteja no código, se eu retirar ela como no código abaixo funciona perfeitamente…

<p:panel id="ter">                                    
                                    <p:outputPanel>
                                        [#{horarioFaces.getHorario(2, i).getGrade().getDisciplina().getCodigo()}]
                                        #{horarioFaces.getHorario(2, i).getGrade().getDisciplina().getDisciplina()}
                                        &nbsp;
                                        <p:commandLink  actionListener="#{horarioFaces.deleteHorario()}" update=":form" >
                                            <f:param name="horario" value="#{horarioFaces.getHorario(2, i).getId()}"></f:param>
                                            <p:graphicImage url="/resources/img/delete_16.png"></p:graphicImage>
                                        </p:commandLink>
                                    </p:outputPanel>                                    
                                </p:panel>

Alguém pode me dar uma ideia porque isso está acontecendo… Obrigado

Estou mexendo a pouco tempo tb no prime faces e tenho as vezes os mesmo problemas.

A propriedade rendered aceita valores do tipo booleano, ou seja, true ou false, sua expressão retorna o dado nesse formato?
Outra coisa, pode ser o ajax, as vezes tenho problemas em unificar ele com o jsf e o primefaces,tente mudar o commandlink com a propriedade ajax=“false”

[]s

Opa parceiro…

O método inserido na propriedade rendered retorna true ou false sim…

Sete a propriedade ajax para false e não funcionou…

Se eu tirar o commandLink da tag outputPanel como abaixo funciona corretamente…

<p:panel id="ter">                                      
                                    <p:outputPanel rendered="#{horarioFaces.existeHorario(2, i)}">  
                                        [#{horarioFaces.getHorario(2, i).getGrade().getDisciplina().getCodigo()}]  
                                        #{horarioFaces.getHorario(2, i).getGrade().getDisciplina().getDisciplina()}  
                                     </p:outputPanel>                                      

                                        <p:commandLink  actionListener="#{horarioFaces.deleteHorario()}" update=":form" >  
                                            <f:param name="horario" value="#{horarioFaces.getHorario(2, i).getId()}"></f:param>  
                                            <p:graphicImage url="/resources/img/delete_16.png"></p:graphicImage>  
                                        </p:commandLink>  

 </p:panel>  

faelbsr, como vai?

Conseguiu solucionar esse mistério? Estou passando exatamente pela mesma dificuldade… estou quase “arrancando” os cabelos!

Abraços,

Opa, tudo bem?

Resolvi o problema, não utilize o componente <p:outputPanel> e coloque a propriedade rendered dentro do p:commandLink.

Dessa maneira funcionou pra mim.

Valeu, faelbsr!

Na verdade preciso esconder ou exibir o panel por completo!
Numa página eu tenho 2(dois) panel, porém em um momento um precisa estar oculto e outro em exibição.

A grande questão… com o rendered no panel o commandButton não funciona!

Pois é, esse era exatamente meu problema. Tentei de tudo mas por fim o que resolveu mesmo foi tirar o componente panel e colocar o render nos outros componentes