IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

[RichFaces] Modal Panel , gestion des erreurs


Sujet :

JSF Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 90
    Par défaut [RichFaces] Modal Panel , gestion des erreurs
    Bonjour,


    Voilà je viens de passer sur RichFaces et le composant ModalPanel m'interesse. Je voulais m'en servir afin d'afficher des erreur personalisée au client.

    Par exemple : "Formulaire incorrect blablabla"

    J'ai cherché sur le net pour voir si quelqu'un avait déjà proposé une telle solution, mais rien du tout :s

    Est-ce réellement possible? Et si oui, si l'on pouvait m'aiguiller.

    Merci

  2. #2
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 32
    Par défaut
    salut,

    j'ai eu le même type de problème que toi,
    j'ai trouvé la réponse sur le forum, voici le lien du post:

    http://www.developpez.net/forums/d60...l/#post3597667


    bon courage

  3. #3
    Membre chevronné Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Par défaut
    Tu trouveras un exemple ainsi que les sources sur ce lien : http://livedemo.exadel.com/richfaces...anel&tab=usage

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 90
    Par défaut
    Merci ng.phung, je vais allez voir ce lien.

    supermanu, j'ai déjà été vori ce lien avant de venir içi D'ailleur ca marche très bien lorsque je click sur un lien.

    Mais j'aimerais que ça s'affiche "automatiquement" lorsqu'il y a une erreur.

  5. #5
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    tu peux utiliser le parametre showWhenRendered, pour des erreurs de validations ou de conversion:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    showWhenRendered="#{facesContext.maximumSeverity !=null}"
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <rich:messages/> ou <h:messages />
    dans le modalPanel

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 90
    Par défaut
    J'aime bien ton astuce Sniper37, malheureusement, pas le temps d'essayer ça aujourd'hui. Je verrai ça demain.

    (je mettrai alors en résolu si tout se passe bien )

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 90
    Par défaut
    Voilà je viens d'essayer ta solution, et ça ne marche pas

    J'ai mis un champ required=true , et lorsque je valide mon formulaire, la modalPanel ne s'affiche pas (pareil si je génère moi même une erreur). Par contre, après avoir valider le formulaire, si je click sur le lien qui me permet d'afficher ma modalPanel, elle s'affiche bien, avec le bon message d'erreur.

  8. #8
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    quand tu valide le formulaire, il faut ouvrir le modalPanel sur l'événement onComplete,
    si il la validationéchoue le modalPanel s'ouvre.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 90
    Par défaut
    Ah oui du coup ça marche beaucoup mieux

    Merci c'est exactement ce que je recherchais.

    Et hop, problème résolu.


    Edit : je me posais une question sur ce fameux showWhenRendered, je viens de l'enlever, de redémarrer mon serveur, et tout marche. D'après la doc, cet attribut sert a indiquer si il faut afficher la modalPanel juste après le chargement de la page. D'ailleur si on le met à true, c'est exactement ce qu'il se passe.

  10. #10
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Citation Envoyé par Jexou Voir le message


    Edit : je me posais une question sur ce fameux showWhenRendered, je viens de l'enlever, de redémarrer mon serveur, et tout marche. D'après la doc, cet attribut sert a indiquer si il faut afficher la modalPanel juste après le chargement de la page. D'ailleur si on le met à true, c'est exactement ce qu'il se passe.
    mais il faut éviter que le modalPanel s'affiche si la page est rechargée alors qu'il n'ya pas d'erreur..

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 90
    Par défaut
    Oui je viens de comprendre, je me suis un peu précipité dans mon edit


    Edit : qu'il soit la ou pas, le showWhenRendered ne change rien :

    ->J'ai un champ en required=true
    ->je valide la page sans le remplir -> la ModalPanel s'affiche -> Normal

    ->Je le rempli, je valide -> La ModalPanel s'affiche avec aucun message d'erreur :s

    Je ne sais pas ce que j'ai mal fait

  12. #12
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    est ce que tu as mis la condition donnée ci-dessus.?

    la condition vérifie s'il n'y a pas de message.peu etre tu as d'autres messages de validations ou de conversion..

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 90
    Par défaut
    Oui j'ai bien mis la condition showWhenRendered.

    Voici le code de ma modalPanel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    		<rich:modalPanel id="panel" width="350" height="100" showWhenRendered="#{facesContext.maximumSeverity !=null}">
            <f:facet name="header">
                <h:panelGroup>
                    <h:outputText value="Modal Panel"></h:outputText>
                </h:panelGroup>
            </f:facet>
            <f:facet name="controls">
                <h:panelGroup>
                    <h:graphicImage value="/images/modal/close.png" style="cursor:pointer" id="hidelink"/>
                    <rich:componentControl for="panel" attachTo="hidelink" operation="hide" event="onclick"/>
                </h:panelGroup>
            </f:facet>
            <rich:messages/>
            <h:messages/>
        </rich:modalPanel>
    Je ne fais qu'une seule vérification : un required=true sur un champs.

  14. #14
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    tu log les phases JSF..?

    ajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <rich:messages showDetail="true" showSummary="true"></rich:messages>

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 90
    Par défaut
    Non je n'avais pas de Listener, mais je viens d'en mettre un :

    Le cas où j'envo ides données correctes (mais le modalPanel s'affiche)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    BeforePhase: RESTORE_VIEW 1
    AfterPhase: RESTORE_VIEW 1
    BeforePhase: RENDER_RESPONSE 6
    AfterPhase: RENDER_RESPONSE 6
    BeforePhase: RESTORE_VIEW 1
    AfterPhase: RESTORE_VIEW 1
    BeforePhase: RENDER_RESPONSE 6
    AfterPhase: RENDER_RESPONSE 6
    BeforePhase: RESTORE_VIEW 1
    AfterPhase: RESTORE_VIEW 1
    BeforePhase: RENDER_RESPONSE 6
    AfterPhase: RENDER_RESPONSE 6
    BeforePhase: RESTORE_VIEW 1
    AfterPhase: RESTORE_VIEW 1
    BeforePhase: RENDER_RESPONSE 6
    AfterPhase: RENDER_RESPONSE 6
    BeforePhase: RESTORE_VIEW 1
    AfterPhase: RESTORE_VIEW 1
    BeforePhase: RENDER_RESPONSE 6
    AfterPhase: RENDER_RESPONSE 6
    BeforePhase: RESTORE_VIEW 1
    AfterPhase: RESTORE_VIEW 1
    BeforePhase: RENDER_RESPONSE 6
    AfterPhase: RENDER_RESPONSE 6
    BeforePhase: RESTORE_VIEW 1
    AfterPhase: RESTORE_VIEW 1
    BeforePhase: RENDER_RESPONSE 6
    AfterPhase: RENDER_RESPONSE 6
    BeforePhase: RESTORE_VIEW 1
    AfterPhase: RESTORE_VIEW 1
    BeforePhase: APPLY_REQUEST_VALUES 2
    AfterPhase: APPLY_REQUEST_VALUES 2
    BeforePhase: PROCESS_VALIDATIONS 3
    AfterPhase: PROCESS_VALIDATIONS 3
    BeforePhase: UPDATE_MODEL_VALUES 4
    AfterPhase: UPDATE_MODEL_VALUES 4
    BeforePhase: INVOKE_APPLICATION 5
    Save book
    User has saved a new book
    Hibernate: select book_.ISBN, book_.Titre as Titre0_, book_.Auteur as Auteur0_, book_.Prix as Prix0_ from BOOKMANAGER.BOOK book_ where book_.ISBN=?
    AfterPhase: INVOKE_APPLICATION 5
    BeforePhase: RENDER_RESPONSE 6
    AfterPhase: RENDER_RESPONSE 6
    Save Book s'affiche dès qu'on appuye sur le bouton de validation. Ensuite viens mon Logger puis le code sql executé.

    Maintenant lorsque la donnée est manquante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    BeforePhase: RESTORE_VIEW 1
    AfterPhase: RESTORE_VIEW 1
    BeforePhase: APPLY_REQUEST_VALUES 2
    AfterPhase: APPLY_REQUEST_VALUES 2
    BeforePhase: PROCESS_VALIDATIONS 3
    AfterPhase: PROCESS_VALIDATIONS 3
    BeforePhase: RENDER_RESPONSE 6
    AfterPhase: RENDER_RESPONSE 6
    Le code erreur étant : myForm:isbn: Erreur de validation: Valeur requise.myForm:isbn: Erreur de validation: Valeur requise.

  16. #16
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    et le code où tu envoies le formulaire?

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 90
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    package view;
     
     
    import database.dao.classes.Book;
    import database.dao.interfaces.BookDAO;
     
    public class ManageBook
    {
    	private Book book ; 
    	private BookDAO bookDAO ; 
     
    	public BookDAO getBookDAO() {
    		return bookDAO;
    	}
     
    	public void setBookDAO(BookDAO bookDAO) {
    		this.bookDAO = bookDAO;
    	}
     
    	public ManageBook()
    	{
    		book = new Book();
    	}
     
    	public String saveBook()
    	{
    		System.out.println("Save book");
    		bookDAO.saveBook(book);
    		return "";
    	}
     
    	public Book getBook() {
    		return book;
    	}
     
    	public void setBook(Book book) {
    		this.book = book;
    	}
     
    }
    BookDAO étant une interface, voici le code de l'implémentation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    package database.dao.classes;
     
    import java.util.List;
     
    import org.springframework.dao.DataAccessException;
    import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
     
    import database.dao.interfaces.BookDAO;
     
    public class BookDAOHibernateImpl extends HibernateDaoSupport implements BookDAO
    {
    	public BookDAOHibernateImpl()
    	{
     
    	}
     
    	public List findAll()
    	{
    		return null;
    	} 
     
    	public Book getBookById(String id)
    	{
    		Book book = (Book)this.getHibernateTemplate().load(Book.class, id);
    		return book;
    	}
     
    	public void saveBook(Book book) 
    	{
    		try
    		{
    			this.getHibernateTemplate().saveOrUpdate(book);
    		}
    		catch(DataAccessException ex)
    		{
    			ex.printStackTrace();
    		}
    	}
    }

  18. #18
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    je parlais du code du button dans la jsp.

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 90
    Par défaut
    Aaah :p

    Le voici

    <a4j:commandButton value="Validate" action="#{manageBook.saveBook}" oncomplete="Richfaces.showModalPanel('modalPanel:mp');" />

    modalPanel -> la form qui contient mon modalPanel et mp mon modalPanel

  20. #20
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    J'ai exactement le même et elle ne se lance jamais le modalPanel si il n'y a pas de message d'erreur..
    sinon ce que tu peux faire, ajouter une fonction boolean qui teste s'il n'y a pas de message dans le context.
    ton modalPanel n'est pas inclus dans le formulaire de ta page..?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [FB] Gestion des erreurs et application francophone
    Par Benjamin GAGNEUX dans le forum Installation
    Réponses: 10
    Dernier message: 20/05/2006, 14h54
  2. [struts][Datasource]Gestion des erreurs
    Par GreenJay dans le forum Struts 1
    Réponses: 8
    Dernier message: 15/09/2004, 16h51
  3. [VB6] Gestion des erreurs dans une dll
    Par zimba-tm dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/08/2004, 11h20
  4. [XSLT]Est ce qu'il y'a la gestion des erreur en xslt ?
    Par miloud dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 04/02/2004, 17h19
  5. [LG]gestion des erreurs
    Par frontin dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2003, 22h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo