Gostaria que a tag outputText mostrasse o valor da variavel ‘num’ gerada no laço forEach… não consigo, parece q o JSTL e o JSF nao se comunicam mto bem… alguém sabe como implementar algo parecido ou contornar esse problema?
Cara… vou ficar acompanhando tb esse tópico… tenho interesse em JSTL…
rponte
Bem, JSTL é utilizado em tempo de Build Time, ou seja, ele roda durante a construção da árvore de componentes, e não durante a fase de renderização (Render Time).
Neste seu caso, você está montando a árvore de componentes com 10 componentes h:outputText com o value #{num}, atente que isso ocorre durante a construção da árvore de componentes, logo ao chegar na fase de renderização o framework avaliará a EL #{num} (é somente aqui que ele avalia o valor da EL) e provavelmente não encontrará um valor para ela já que o seu escopo era “page”. (Não tenho certeza, mas talvez ele avalie com o último valor do loop, no caso o valor seria 10).
Enfim, quando pensar em utilizar JSTL com JSF pense em utiliza-lo para construir a árvore de componentes e não renderizar (X)HTML como se usa comumente. Para isso, o componente h:dataTable ou a tag ui:repeat (Facelets) te ajudará!
Abraços e boa sorte.
gleise
:idea: Uma alternativa ao h:dataTable é o t:dataList do MyFaces Tomahawk, caso você queira renderizar a lista sem usar tabela.
A
andre2k2
Eu preciso renderizar varios componentes dentro do laço… o outputText foi apenas um exemplo pra demonstrar como ocorria o erro… preciso renderizar tabPanel e dentro delas outros varios componentes…
Gleise vc poderia me dar um exemplo? sou meio leigo em JSF, Tomahawk e afins, hehehe!!!
maurenginaldo
Qual a versão do Jsf vc está utilizando? Para funcionar com o Jstl precisa da 1.2.
Seria pra iterar entre os locais e imprimir uma tab de nome “tab” se o local fosse o local selecionado, e outra tab de um nome qualquer se nao fosse…
Ele até itera mas nao gera as tabs… e da um erro no render time
Alguma coisa que esteja fazendo errado?
maurenginaldo
Para esse tipo de montagem de tela dinâmica, sugiro a vc que faça no java e associe ao binding de um componete tabPanel.
A
andre2k2
vc tem um exemplo de como faz isso? desculpe sou bem leigo em jsf
maurenginaldo
A propriedade binding serve para associarmos o componente Jsf ao seu componente similar no java.
Por exemplo:
No exemplo indica que o seu componente na tela não será renderizado.
Foi só um exemplo didático. No java vc pode fazer tudo com o comonente, porém com mais recursos.