Primefaces JSF - <p:ajax>

Fala galera!

Preciso fazer com que quando o usuário sair de uma determinada página, (seja clicando em outro lugar do sistema, ou indo pra outro site, ou fechando o browser) eu grave uma informação no banco de dados (log).

Acho que o <p:ajax> consegue fazer isso né?
Como eu poderia fazê-lo?

tente assim:


&lt;body onunload="leavingPage()"&gt;

&lt;a4j:jsFunction name="leavingPage" action="#{myBean.myMethod}"/&gt; // exemplo em richfaces, acho que é facil adaptar

fonte: stack overflow, http://stackoverflow.com/questions/9983904/is-there-a-way-to-call-a-method-upon-leaving-a-page-with-jsf-or-primefaces

tente assim:


&lt;body onunload="leavingPage()"&gt;

&lt;a4j:jsFunction name="leavingPage" action="#{myBean.myMethod}"/&gt; // exemplo em richfaces, acho que é facil adaptar

fonte: stack overflow, http://stackoverflow.com/questions/9983904/is-there-a-way-to-call-a-method-upon-leaving-a-page-with-jsf-or-primefaces

Para fazer logout você não chama nenhum método que irá fazer session.invalidate() não?

Se chama, você pode fazer o registro no DB nesse exato momento.

Sim, eu tenho um método que faz o logout.
Mas na verdade eu preciso fazer isso em outro momento.
Em um momento onde a página web está fazendo algum processamento e por algum motivo o usuário interrompa isso.
Ele pode até interromper mas precisa ser registrado.

Perfeita a solução do <h:body unonload=“event()”>.
Nem precisei usar ajax! :slight_smile: