Question

Je me demandais juste à mettre en œuvre une sorte de journal d'affichage à l'utilisateur, dans tous les messages dans l'application sont affichées à l'utilisateur tout le temps.

Depuis que j'utilise JSF 1.2 et RF 3.3.3, je voulais savoir si il est possible de sauvegarder tous les messages soit ajouté par différentes requêtes et de les afficher à l'utilisateur, de sorte que l'utilisateur va connaître l'histoire des actions qu'il a fait.Il est également utile pour l'équipe de support à l'analyse de la cause du problème et qu'il peut envoyer les messages aux développeurs si elle doit ou simulé) pour déboguer le but aussi.

Je sais aussi facesmessages obtenir effacée sur les différentes demandes, c'est là que ma question se trouve, pour enregistrer les messages sur les différentes demandes :)

Pourraient être traitées de manière différente par sauver une variable de session ou alors...je vous serais reconnaissant de toutes les réponses possibles

Était-ce utile?

La solution

Vous pourriez recueillir tous les messages au cours de la rendre réponse à une PhaseListener.E. g.

public class MessagesListener implements PhaseListener {

    @Override
    public PhaseId getPhaseId() {
        return PhaseId.RENDER_RESPONSE;
    }

    @Override
    public void beforePhase(PhaseEvent event) {
        FacesContext context = event.getFacesContext();
        Iterator<String> clientIds = context.getClientIdsWithMessages();

        while (clientIds.hasNext()) {
            String clientId = clientIds.next();
            Iterator<FacesMessage> messages = context.getMessages(clientId);

            while (messages.hasNext()) {
                FacesMessage message = messages.next();
                save(clientId, message); // Do your job here.
            }
        }
    }

    @Override
    public void afterPhase(PhaseEvent event) {
        // NOOP.
    }

}

Pour le faire fonctionner, l'enregistrer comme suit faces-config.xml:

<lifecycle>
    <phase-listener>com.example.MessagesListener</phase-listener>
</lifecycle>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top