Hello les gens,
- Je dispose d'un vue avec uncontenant deux
Code : Sélectionner tout - Visualiser dans une fenêtre à part <p:accordionPanel>avec dans chacun d'eux un formulaire et son submit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <p:tab>
- Les champs des formulaires sont validés au travers d'annotations.
Problème:
Le comportement par défaut de mon<p:accordionPanel> est que lorsque la page est rafraichie c'est toujours le premier tab qui est ouvert or dans le cas de figure ou la validation de données ne passe pas concernant les champs du deuxième tab, c'est celui-ci que je souhaiterais voir ouvert.
Solution:
J'ai la possibilité de contrôler dynamiquement lequel des deux tab ouvrir au travers de:
Limitation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 // Garder ouvert l'accordéon tab2 pour que // l'utilisateur visualise les erreurs ou le message affiché UIViewRoot viewRoot = FacesContext.getCurrentInstance().getViewRoot(); UIComponent uiComponent = viewRoot.findComponent("idDuAccordionPanel"); AccordionPanel aPanel = (AccordionPanel) uiComponent; //Commence par l'indice 0 aPanel.setActiveIndex("1");
Ce code peut très bien être lancé au niveau de l'action du submit (au cas ou il y'aurait une c...... lors l'insertion, accès en base de données etc...) par contre impossible de le mettre quelque part juste après l’échec de la validation.
Y a t il des annotations JSF relatives à son cycle de vie De façon à invoquer ce code juste après l’échec de la validation.
Auriez-vous des solutions à me proposer?
Merci pour toutes vos contributions.
Partager