Olá gangue,
Eu tenho um managed bean que executa o “conversation.begin()” no PostConstruct e “conversation.end()” no momento que eu termino de cadastrar meu objeto (está no local correto - usava sessionScoped e estou tentando migrar para ConversationScoped)
O problema é que o postConstruct está sendo executado toda hora que eu altero um componente usando ajax, causando validation error (o ajax preenche uma lista dinamicamente). Verifiquei que o método anotado com postConstruct está sendo executado várias vezes e não uma vez a cada início de conversa, como eu esperava.
Alguém sabe como poderemos resolver isso?
Bom dia amigos.
Estou com o mesmo problema.
Alguém já passou por isso?
Abraços.
Estou com o mesmo problema.
E pra piorar, na segunda requisição pro mesmo Bean, o @Inject tá injentando uma Conversation nova, não aquela que eu tinha iniciado no request anterior.
Opa galera
Altere o web.xml, ou seja inclua o codigo abaixo:
javax.faces.PARTIAL_STATE_SAVING
false
Opa mascurco,
isso vai ajudar o Bean a não ser “construido” de novo?
Sim amigo.
O escopo de View funciona legal.
O de View até que não tive problemas,
mas e o de Conversation?
Com este escopo ainda não testei…
Faça o teste e nos fala depois.
Abraços.
se não der certo, segue abaixo umas soluções interessantes:
tem um cara comentando que “startar” a Conversation no @PostConstruct não é mto interessante, e dá um exemplo utilizando <f:event> e <s:viewAction>
mais tarde vou tentar essas paradas,
dps posto pra dizer o que rolou.
Obrigado
Abraços
Depois de algumas pesquisas, vi que o grande problema é que estávamos perdendo o ID da Conversation.
Nós precisamos propagar o Conversation ID nos submits.
por ex:
<h:commandButton value=“Salvar”>
<f:param name=“cid” value="#{conversation.id}" />
<f:ajax execute="@form" render="@form" />
</h:commandButton>
Imaginando que esse submit irá para o mesmo Managed Bean, ele só vai executar o @PostConstruct na primeira vez que carregou a tela.