Utilizar um parâmetro de um Bean em uma variável JSF

2 respostas
ksi

Tenho as seguintes tags:

<rich:dataTable id="idalg" var="_variavel" value="#{algumaCoisaList.resultList}" rendered="#{not empty algumaCoisaList.resultList}"> <rich:column styleClass="colId"> <h:outputText value="#{processos.buscaGeral(_variavel).valorA}"/> <h:outputText value="#{processos.buscaGeral(_variavel).valorB}"/> <h:outputText value="#{processos.buscaGeral(_variavel).valorC}"/> </rich:column> ... fecha tags

(Processos seria um bean, no meu caso)

Note que o método #{processos.buscaGeral(_variavel).valorC} é chamado todas as vezes, o que gostaria de ter é algo assim:

<rich:dataTable id="idalg" var="_variavel" value="#{algumaCoisaList.resultList}" rendered="#{not empty algumaCoisaList.resultList}"> <rich:column styleClass="colId"> <tag:atribui value="processo" parameter="#{processos.buscaGeral(_variavel)}"/> <h:outputText value="#{processo.valorA}"/> <h:outputText value="#{processo.valorB}"/> <h:outputText value="#{processo.valorC}"/> </rich:column> ... fecha tags

Alguém conhece alguma tag que resolva o meu problema ou não tem como fazer isso?

Obrigado.

2 Respostas

andresilvaq

Olá!!!

Quando iniciei na programação com JSF achei q era possível passar parâmentros dessa forma, mas, desconsiderando o JSF 2.0 recentemente lançado, que possui esse recurso, o jsf padrão não permite esse tipo de passagem…

Mas, nem tudo está perdido, tem como passar parâmetros por outras tags:
Dá um olhada na tag <f:param> e a4j:actionparam (junção de funcionalidades das JSF tags <f:param> e<f:actionListener>)

Ex:
<f:param id=“p1” name=“nomeParam” value=“12345” /> está tag declara um parâmetro chamado nomeParam que vai receber o valor 12345, este parâmetro pode ser acessado pela instância do FacesContext de sua aplicação. Daqui em diante é com você!!!

Espero que seja isso q você estava precisando… flw :smiley:

ksi

Agradeço pela resposta!

Mas nesse caso não vai funcionar bem pra mim.
Vou ver algo do actionParam se realmente resolve.

Valeu.

Criado 14 de dezembro de 2009
Ultima resposta 14 de dez. de 2009
Respostas 2
Participantes 2