Pergunta

Aqui está a situação:

Em um rico: dataTable em uma a4j: forma, eu criar um a4j: commandLink para selecionar os valores e passá-lo para o feijão com o el ação jboss sintaxe

action="#{bean.myaction(myparameter)}"

Isso funciona sem problema.

Mas se eu voltar a tornar a forma de filtrar a tabela de dados com uma chamada ajax, quando eu selecionar o valor, ele me dá os resultados errados:. O índice a partir da seleção, mas os dados de antes da filtragem

Todas as idéias?

Obrigado Zack por me dar a solução certa em apenas 5 minutos.

Eu acho que passar parâmetro na ação entre parênteses é mais elegante, mas, hey: isso funciona. :)

Obrigado muito.

P.S. Estou editando o título também.

Foi útil?

Solução

Tente usar:

<a4j:commandLink action="#{bean.myaction}">
    <f:param name="myparameter" value="paramValue" />
</a4j:commandLink>

e, em seguida, acesso esse parâmetro em sua ação através da requestParameter("myparameter") através do FacesContext.

Como uma nota lateral, esta é linguagem de expressão não jboss EL, é unificado (EL). É apenas uma característica do JSP / JSF em geral, conforme especificado pelo dom

Outras dicas

Além de resposta do Zack, eu diria que, se você precisa estender as expressões EL, a fim de ter a capacidade de chamada de método com parâmetros, você pode usar o El Functores biblioteca:

action="#{bean.myaction$[myparameter].action}"

é sua tabela de dados preenchida usando uma coleção anotada com @DataModel? Se assim for tente removê-lo a partir do contexto ao filtrar para que ele seja re-solicitado.

por exemplo.

//In filter method
Contexts.removeFromAllContexts("yourDataModelCollection");

Colocar o dataTable em um <a4j:region> funcionou para mim. Dessa forma, você ainda pode usar parâmetros JBoss EL.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top