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 :

affecter un valeur à un attribut de composant richface


Sujet :

JSF Java

  1. #1
    Membre actif Avatar de hazamor
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2008
    Messages : 179
    Points : 206
    Points
    206
    Par défaut affecter un valeur à un attribut de composant richface
    Salut à tous, je veux ajouter (ou remplacer) la propriété disabled=false au composant richfaces (bien sûr que j'ai fait un test d'applicabilité de cette propriété).
    La problème est que la method put de la Map des attributs genère "IllegalArgumentException" , malgré que cette propriété existe (applicable):

    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
    public void parcoursElements() throws RemoteException, ServiceException {
    		FacesContext ctx = FacesContext.getCurrentInstance();
    		UIComponent root = (UIComponent) ctx.getViewRoot();
    		parcoursSousElements(root);
    	}
    
    	
    	public void parcoursSousElements(UIComponent root) throws RemoteException,
    			ServiceException {
    		List<UIComponent> listComposants = root.getChildren();
    			if (root.getAttributes().get("disabled")!=null && verifVisibility(root))
    			{	
    				System.out.println("Avant: "+root.getAttributes().get("disabled"));
    				root.getAttributes().put("disabled", "disabled");				
    			}
    			else
    			{
    				System.out.println("disabled no");
    			}
    			System.out.println();
    			System.out.println();
    		
    		for (int i = 0; i < listComposants.size(); i++) {
    			parcoursSousElements(listComposants.get(i));
    		}
    	}
    
    	
    	private boolean verifVisibility(String id, List actionapos) {
    
    		return true;
    	}


  2. #2
    Membre habitué
    Inscrit en
    Mars 2009
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 154
    Points : 149
    Points
    149
    Par défaut
    La propriété disabled n'es tpas true ou false ? (parce que là tu put disabled...)

  3. #3
    Membre actif Avatar de hazamor
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2008
    Messages : 179
    Points : 206
    Points
    206
    Par défaut
    Désolé, j'ai mis valeur "disabled" pour tester une autre chose .

    Mais meme avec les valeur true et false, une exception est générée:

    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
    public void parcoursElements() throws RemoteException, ServiceException {
    		FacesContext ctx = FacesContext.getCurrentInstance();
    		UIComponent root = (UIComponent) ctx.getViewRoot();
    		parcoursSousElements(root);
    	}
    
    	
    	public void parcoursSousElements(UIComponent root) throws RemoteException,
    			ServiceException {
    		List<UIComponent> listComposants = root.getChildren();
    			if (root.getAttributes().get("disabled")!=null && verifVisibility(root))
    			{	
    				System.out.println("Avant: "+root.getAttributes().get("disabled"));
    				root.getAttributes().put("disabled", "false");				
    			}
    			else
    			{
    				System.out.println("disabled no");
    			}
    			System.out.println();
    			System.out.println();
    		
    		for (int i = 0; i < listComposants.size(); i++) {
    			parcoursSousElements(listComposants.get(i));
    		}
    	}
    
    	
    	private boolean verifVisibility(String id, List actionapos) {
    
    		return true;
    	}

  4. #4
    Membre habitué
    Inscrit en
    Mars 2009
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 154
    Points : 149
    Points
    149
    Par défaut
    Bon je t'aide au jugé car je n'ai jamais fait de binding...

    Peut-être que tu ne devrais pas essayer d'ajouter un nouvel attribut car il existe déjà ? Tu devrais peut-être chercher à le modifier . Mais je vois qu'il n'y a pas de méthode set :s.
    Je te suggère donc de retirer l'attribut "disabled" avant de le remettre avec la nouvelle valeur. Ça marcherait peut-être non ?

  5. #5
    Membre actif Avatar de hazamor
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2008
    Messages : 179
    Points : 206
    Points
    206
    Par défaut
    j'ai essayé de supprimer l'attribut avant de l'ajouter, mais ça marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    root.getAttributes().remove("disabled");
    root.getAttributes().put("disabled", "false");
    ...
    meme exception "IllegalArgumentException", mais cette fois sur l'instruction remove. (malgré que le test sur l'applicabilité de l'attribut fonctionne bien)

  6. #6
    Membre habitué
    Inscrit en
    Mars 2009
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 154
    Points : 149
    Points
    149
    Par défaut
    Bon je sèche :s.

    Mais si tu fais du RichFaces, tu peux modifier la propriété directement en jsf pour le réafficher en ajax. Ca reviendra au même et ça sera peut-être un peu plus simple .

  7. #7
    Membre actif Avatar de hazamor
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2008
    Messages : 179
    Points : 206
    Points
    206
    Par défaut
    C'est bon, j'ai trouvé l'erreur: cet attribut est de type Boolean, donc il faut ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Boolean valeurAttribut= Boolean.TRUE;

    donc


    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
    public void parcoursElements() throws RemoteException, ServiceException {
    		FacesContext ctx = FacesContext.getCurrentInstance();
    		UIComponent root = (UIComponent) ctx.getViewRoot();
    		parcoursSousElements(root);
    	}
    
    	
    	public void parcoursSousElements(UIComponent root) throws RemoteException,
    			ServiceException {
    		List<UIComponent> listComposants = root.getChildren();
    Boolean valeurAttribut= Boolean.TRUE;
    			if (root.getAttributes().get("disabled")!=null && verifVisibility(root))
    			{	
    				System.out.println("Avant: "+root.getAttributes().get("disabled"));
    				root.getAttributes().put("disabled", valeurAttribut);				
    			}
    			else
    			{
    				System.out.println("disabled no");
    			}
    			System.out.println();
    			System.out.println();
    		
    		for (int i = 0; i < listComposants.size(); i++) {
    			parcoursSousElements(listComposants.get(i));
    		}
    	}
    
    	
    	private boolean verifVisibility(String id, List actionapos) {
    
    		return true;
    	}

  8. #8
    Membre habitué
    Inscrit en
    Mars 2009
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 154
    Points : 149
    Points
    149
    Par défaut
    Bon à savoir ça. Bien joué .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affecter une valeur d'attribut d'un objet à un autre
    Par wafiwafi dans le forum Général Java
    Réponses: 9
    Dernier message: 19/08/2011, 11h38
  2. affectation d'une valeur à l'attribut d'une liste
    Par cybermat3 dans le forum JSF
    Réponses: 1
    Dernier message: 16/03/2009, 08h54
  3. Réponses: 1
    Dernier message: 14/06/2008, 14h05
  4. Réponses: 4
    Dernier message: 14/12/2007, 16h15
  5. [xslt] affecter la valeur d'un attribut HTML
    Par ouioui2000 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 16/12/2005, 10h49

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