W jsf istnieje prosty sposób implementacji komunikatów w systemie. Czasami się zdarza, że pewna metoda tworzy w swoim ciele komunikat dla użytkownika a w innym miejscu wywołanie tej metody nie powinno wyświetlać żadnej informacji. Utworzenie takiej samej metody, tylko że bez komunikatu jest złamaniem zasady DRY , a znowu dodanie warunków, może doprowadzić do nadmiernej komplikacji.
Prostym rozwiązaniem jest zastosowanie poniższego kodu:
FacesContext context = FacesContext.getCurrentInstance(); Iterator<String> clients = context.getClientIdsWithMessages(); while (clients.hasNext()) { String clientId = clients.next(); Iterator<FacesMessage> messages = context.getMessages(clientId); while (messages.hasNext()) { messages.next(); messages.remove(); } }
Gdzie są pobierane message a następnie podczas iteracji można je usunąć.
Kolorowanie składni dzięki tej stronie