2010-12-06 40 views
4

J'ai essayé d'afficher un message d'avertissement au client de façon à ce qu'il sache qu'il s'agit d'un avertissement ou quelque chose qu'il a mal fait. Mais tout ce que je sais faire est un message d'information. Comment puis-je le rendre plus sévère?Comment afficher un message d'avertissement à l'utilisateur (et souligner la gravité de la situation)

if (this.instance.getName().trim().equals("")){ 
    addFacesMessage("You must type a name!"); 
    return null; 
} 

Cela semble trop amical.

+1

Vous voudrez peut-être éditer votre question avec plus de détails, par ex. que vous utilisez Seam version x.x etc –

+1

Vous devriez écrire '" ".equals (this.instance.getName(). trim())' à la place pour éviter les exceptions nullpointer –

+0

fait, merci. – pringlesinn

Répondre

0

Injecter:

@In 
FacesMessages facesMessages; 
facesMessages.add(Severity.WARN, "Your message"); 

gravité est un ENUM contenant plusieurs niveaux d'avertissement.

+3

Utilisez 'StatusMessages' à la place. 'FacesMessages' est obsolète –

+0

Eclipse ne me laisse pas faire. Il dit: "La méthode add (StatusMessage.Severity, String) n'est pas définie pour le type FacesMessage", et n'accepte pas ses suggestions. – pringlesinn

2

Comme Shervin vous a conseillé d'utiliser StatusMessages au lieu de FacesMessages. StatusMessages a beaucoup de bonnes méthodes, vous pouvez également les regarder.

import org.jboss.seam.international.StatusMessages; 
import org.jboss.seam.international.StatusMessage.Severity; 
.... 
StatusMessages.instance().add(Severity.ERROR, "Message"); 

après que vous pouvez utiliser errorStyle, fatalStyle, warnStyle de personnaliser look and feel des messages.

<h:messages errorStyle="yourStyle" /> 
+0

Il arrive la même chose qu'avec FacesMessages. Eclipse ne me laisse pas faire. Il dit: "La méthode add (StatusMessage.Severity, String) n'est pas définie pour le type FacesMessage", et n'accepte pas ses suggestions. Une idée de comment y remédier? – pringlesinn

+0

vous devriez utiliser org.jboss.seam.international.StatusMessage.Severity au lieu de StatusMessage.Severity. vous pouvez utiliser les instructions d'importation ci-dessus. –

+0

Je vais essayer et je vous le ferai savoir! – pringlesinn

0

Vous pouvez utiliser un enregistreur?

logger = Logger.getLogger(getClass().getName()); 
logger.severe(message); 
+0

Les enregistreurs sont vraiment pour un enregistrement interne des événements. Les messages dans ce cas sont pour la sortie à l'utilisateur final de l'application Web. Ce sont les messages que vous voyez sur la page suivante après la création de votre compte ou après la suppression d'un film de votre liste et lorsque vous souhaitez envoyer des commentaires à l'utilisateur sur cette page ou sur la page vers laquelle il passe. –

0

Assurez-vous que vos importations sont corrects

import org.jboss.seam.faces.FacesMessages; 
import org.jboss.seam.international.StatusMessage.Severity; 

Injecter ensuite facesMessages composant.

@In(create = true) 
FacesMessages facesMessages; 

Ensuite, vous pouvez définir le message d'erreur et la gravité comme ci-dessous

facesMessages.add(Severity.ERROR, "You must type a name!"); 

maintenant afficher le message comme ci-dessous

<h:messages errorStyle="color:red"/> 

Pour les requêtes Ajax utiliser le composant rich:messages.

<rich:messages errorClass="yourErrClass"/> 
1

Utilisez les messages d'état comme celui-ci

StatusMessages.instance().add(Severity.ERROR, "Incorrect answers below."); 

ne pas utiliser FacesMessages.

Merci