Come mostrare il messaggio dei volti nella pagina reindirizzata

Ho fornito un’interfaccia che consente agli utenti di creare account per un’applicazione. Alla fine del processo il metodo di registrazione esegue il processo di registrazione aggiunge un messaggio di successo alla pagina e quindi naviga l’utente a una tabella di dati centrale che visualizza tutti gli utenti del sistema.

Il problema che ho è che il messaggio di successo non viene mai visualizzato a causa del reindirizzamento della pagina. Non posso avere un wait () nel metodo perché il messaggio JSF non verrà visualizzato fino al completamento del metodo. Idealmente voglio che venga visualizzato il messaggio di successo e poi un momento specificato dopo che la pagina è stata reindirizzata.

Come posso raggiungere questo objective?

Mantieni il messaggio nella portata del flash . Sopravviverà al reindirizzamento.

context.addMessage(clientId, message); externalContext.getFlash().setKeepMessages(true); return "users.xhtml?faces-redirect=true"; 

Nota che le vecchie versioni di Mojarra hanno alcuni bug specifici relativi allo scope di Flash:

  • numero 1755 – I messaggi con scope flash sono più lunghi della prossima richiesta – risolti in 2.0.7 / 2.1.4
  • problema 2130 – Il cookie Flash abilita gli exploit di dati – risolto in 2.1.24 / 2.2.1
  • problema 2140 – Cookie Flash non disponibile quando reindirizzato su un percorso diverso – risolto in 2.1.14 / 2.2.0
  • problema 2906 – Il cookie Flash utilizza un percorso errato per le applicazioni su root – risolto in 2.1.24 / 2.2.1
  • problema 2959 – Flash crea talvolta cookie versione1 che non riesce in IE – risolto in 2.1.25 / 2.2.2
  • problema 2977 – Flash causa NPE sui cookie non aggiornati dopo la scadenza di una sessione – risolto in 2.1.25 / 2.2.2
  • problema 2866 – Il cookie Flash non è stato cancellato se non aggiornato – risolto in 2.1.27 / 2.2.5

È meglio aggiornare a un minimo di Mojarra 2.1.27 / 2.2.5 per garantire che la tua applicazione non sia influenzata da questo.