Salut à tous, c'est mon premier question!! :mouarf:
Dans une fonction java, comment parcourir les éléments d'une page XHTML et mettre leurs Id dans une liste, pour les écrire dans un fichier ou les stocké dans une BD?
Version imprimable
Salut à tous, c'est mon premier question!! :mouarf:
Dans une fonction java, comment parcourir les éléments d'une page XHTML et mettre leurs Id dans une liste, pour les écrire dans un fichier ou les stocké dans une BD?
Bonjour,
Je ne comprends pas trop l'intérêt d'une telle opération, mais il suffit de prendre le ViewRoot, puis de le parcourir en utilisant le getChildren()...
Code:UIComponent monComponent = (UIComponent) FacesContext.getCurrentInstance().getViewRoot();
Bonjour,
excelent romaintaz :ccool:
j'ai utilisé votre idée pour écrire les deux fonction suivantes:
en concernant l'intérêt, je vais utiliser les id de composant pour gérer les droits de l'utilisateur, car je considère une action (insertion, consultation,modification, ...) est un ensemble des privilèges ( visible, enabe,..) sur les boutons çàd les composants.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 public void parcoursElements(){ FacesContext ctx = FacesContext.getCurrentInstance(); Application app = ctx.getApplication(); UIComponent root = (UIComponent) FacesContext.getCurrentInstance().getViewRoot(); parcoursSousElements(root); } public void parcoursSousElements(UIComponent root){ List<UIComponent> listComposants= root.getChildren(); System.out.println("Comopsant:"+root.getId()); System.out.println("Nb des sous éléments:"+listComposants.size()); for (int i = 0; i < listComposants.size() ; i++) parcoursSousElements(listComposants.get(i)); // traitement spésifique de l'élément en cours (root) //enreg }
:ccool:
Mouais, je ne suis toujours pas convaincu par ton explication ;)
Personnellement, je ferais plutôt quelque chose comme ça :
Le principe : un bean (userControlBean) dispose d'une méthode (isHasSuppressionDroit) qui te retourne vrai si l'utilisateur a les droits de suppression, faux sinon. Dans ce dernier cas, le bouton n'est alors pas affiché (tu peux remplacer rendered par disabled si tu préfères que le bouton soit affiché mais grisé si l'utilisateur n'a pas les droits)Code:<h:commandButton value="supprimer" ... rendered="#{userControlBean.hasSuppressionDroit}"/>