Existe uma maneira de ter um JSF Backing bean causar uma atualização de um componente na página? Não estou procurando usar um componente ajax com atributo de atualização para atualizar um componente na página. Preciso acionar uma atualização de dentro de um método de bean de apoio JSF. Observe que a atualização na página pode acontecer após a conclusão desse método ou antes de sua conclusão. Estou usando o PrimeFaces, se houver uma solução que possa ser obtida usando o PrimeFaces.
jsf-2
primefaces
Melhores Práticas
fonte
fonte
Respostas:
Usando a API JSF padrão, adicione o ID do cliente a
PartialViewContext#getRenderIds()
.Usando a API específica do PrimeFaces, use
PrimeFaces.Ajax#update()
.Ou se você ainda não está no PrimeFaces 6.2+, use
RequestContext#update()
.Se acontecer de você usar a biblioteca de utilitários JSF OmniFaces , use
Ajax#update()
.Independentemente da forma, observe que esses IDs de cliente devem representar IDs de cliente absolutos que não são prefixados com o
NamingContainer
caractere separador, como você faria do lado da visualização em diante.fonte
<f:ajax listener>
ou<f:event type="preRenderView" listener>
<f:ajax>
. Isso foi introduzido desde o JSF 2.0. Você precisaria recorrer aos recursos específicos da biblioteca de componentes do JSF 1.2.Eu também tentei atualizar um componente de um bean / classe de apoio jsf
Você precisa fazer o seguinte após manipular o componente de IU:
É importante usar o clientId em vez do componentId (do lado do servidor) !!
fonte
O
RequestContext
foi descontinuado no Primefaces 6.2 . A partir desta versão, use o seguinte:E para executar o javascript do backbean, use desta forma:
Referência:
fonte
Tudo é possível apenas se houver tempo suficiente para pesquisar :)
O que tenho que fazer é como ter pessoas que itero em uma interface do usuário: repetir e exibir nomes e outros campos nas entradas. Mas um dos campos era singleSelect - A e dependendo dele atualizava o valor de outra entrada - B. even ui: repeat não tem id eu coloquei e ele apareceu na árvore DOM
Então, os ids no html eram algo como:
Do que na visualização, tenho um método como:
E sua implementação foi no bean como:
Assim, atualizei o elemento do bean sem problemas. PF versão 6.2
Boa sorte e boa codificação :)
fonte
personType
, transmitir a pessoa e o índice para o ouvinte de ajax é supérfluo. Você pode obter o id e o valor do evento. Mas sua solução pode ser necessária para seu caso de uso específico, mas como não há um exemplo completo (no sabor de exemplo reproduzível mínimo ), é difícil dizer.