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 :

erreur de recuperation de donne avec jsf


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2011
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 232
    Par défaut erreur de recuperation de donne avec jsf
    salut,

    mon but est d'afficher sous forme de liste deroulante des donnes qui sont envoyer a partir d'un managed bean

    pour le cette class

    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
     
     
    public class Recuperation
    {
     SAXBuilder sxb=new SAXBuilder();
    	                List<String> listeNomParser=new ArrayList<String>();
    	       Document document=sxb.build(new File("basexml/Testvrai.xml"));
    	            Element societes=document.getRootElement();
    	            List<Element> soc=societes.getChildren();
     
     
    	                        for(Element societe:soc){
     
     
    	                String nom=societe.getChild("nom").getText();
    	                                listeNomParser.add(nom);
     
     
     
     
     
     
    	}
     
     
     
     
    							return listeNomParser;
     
     
    	}
     
     
     
    }
    ce code de récupération de liste de String à partir de fichier .xml est juste

    donc on s'intéresse uniquement au résultat récupérer c a dire list<String>


    pour la page web je fait ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     <h:selectOneMenu >
    				<f:selectItem itemLabel="#{Recuperation.getDatas}" itemValue="#{RecuperationgetDatas}" />
     
     
     
    			</h:selectOneMenu>





    mais elle m'affiche comme erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    javax.servlet.ServletException: /ListDeroulantevrai.xhtml @36,97 itemLabel="#{Recuperation.getDatas}": Property 'getDatas' not found on type org.Recuperation
    	javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
    	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
    	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
    	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
    	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
    	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)


    merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 65
    Par défaut
    La liste que tu veux récupérer devrait s'appeller "datas" et pouvoir être accédée par un getDatas() et un setDatas(...)

    Dans ta vue du peux référéncer ta liste ainsi du coup :
    Dans ce cas tu devrais utiliser :
    au lieu de

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2011
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 232
    Par défaut
    merci pour la reponse

    je fait quelques changement

    la class Recuperation est
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    public calss Recuperation
    {
     
    private String nom1;
    private List<String> datas=new ArrayList<String>();
     
     
    public List<String> getDatas() throws Exception{
    	 SAXBuilder sxb=new SAXBuilder();
    	                List<String> listeNomParser=new ArrayList<String>();
    	       Document document=sxb.build(new File("basexml/Testvrai.xml"));
    	            Element societes=document.getRootElement();
    	            List<Element> soc=societes.getChildren();
     
     
    	                        for(Element societe:soc){
     
     
    	                String nom=societe.getChild("nom").getText();
    	                                listeNomParser.add(nom);
     
     
     
     
     
     
    	}
     
     
    	                        datas=listeNomParser;
     
     
    							return datas;
     
     
    	}
     
     
     
     
     
    public void setDatas(List<String> datas) {
    	this.datas = datas;
    }
     
     
     
    public void setNom1(String nom1) {
    	this.nom1 = nom1;
    }
     
     
     
     
     
     
     
     
     
     
     
    public String getNom1() {
     
    	nom1="test";
    	return nom1;
    }
     
     
     
     
     
     
    }
    et pour la page web

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     <h:selectOneMenu value="#{Recuperation.nom1}">
    				<f:selectItems itemLabel="#{Recuperation.datas}" value="#{Recuperation.datas}" />
     
     
     
    			</h:selectOneMenu>



    lors de l'execution l'erreur est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    javax.servlet.ServletException: /ListDeroulantevrai.xhtml @36,92 value="#{Recuperation.datas}": Error reading 'datas' on type org.Recuperation
    	javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
    	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
    	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
    	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
    	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
    	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2011
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 232
    Par défaut
    si je fait de cette maniere

    il m'affcihe comme erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    javax.servlet.ServletException: PermGen space
    	javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
    	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
    	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
    	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
    	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
    	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
     
     
    cause mère

    le code de page web
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     <h:selectOneMenu >
    				<f:selectItems itemLabel="#{Recuperation.datas}" itemValue="#{Recuperation.datas}" />
     
     
     
    			</h:selectOneMenu>

    pourtant si je fait de cette maniere il m'affiche une liste deroulante contient deux fois la valeur "test"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
     
    <h:selectOneMenu >
    				<f:selectItems itemLabel="#{Recuperation.nom1}" itemValue="#{Recuperation.nom1}" />
     
    			<f:selectItems itemLabel="#{Recuperation.nom1}" itemValue="#{Recuperation.nom1}" />
     
     
    			</h:selectOneMenu>

    donc le problemme est comment recuperer une liste de String et l'afficher dans la liste deroulante
    mais n'oubli pas que le code qui retourne qui fait parser le fichier .xml est correcte

    le problemme est quant dans la class Recuperation quand je rempli une liste peu n'importe quel contenu il y'a toujours problème pour afficher son contenu dans une liste deroulante

    donc le problème est au niveau de cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <f:selectItems itemLabel="#{Recuperation.datas}" itemValue="#{Recuperation.datas}" />

  5. #5
    Membre confirmé Avatar de koack
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 60
    Par défaut
    hello,

    perso je dirais que tu es en train de melanger selectitem et selectitems :

    selectitem :
    http://www.jsftoolbox.com/documentat...electItem.html

    selectitems :
    http://www.jsftoolbox.com/documentat...lectItems.html

    Un dernier conseil ne met pas de code dans tes GETTER SETTER.

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2011
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 232
    Par défaut
    désole si ,j'insiste pour le même question

    je consulte votre document et j'essaye de plusieurs manieres

    un parmi des cas que j'ai testé est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <h:selectOneMenu value="#{Recuperation.nom1}">
    				<f:selectItem itemLabel="#{Recuperation.datas}" itemValue="#{Recuperation.datas}"></f:selectItem>
     
    			</h:selectOneMenu>
    mais l'erreurs est
    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
    javax.servlet.ServletException: L'exécution de la servlet a lancé une exception
    	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
    	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
    	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
    	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
    	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
     
     
    cause mère 
     
    java.lang.OutOfMemoryError: PermGen space
    	java.lang.ClassLoader.defineClass1(Native Method)
    	java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
    	java.lang.ClassLoader.defineClass(ClassLoader.java:616)
    	java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    	org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1814)
    	org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872)
    	org.jboss.web.tomcat.service.WebAppClassLoader.findClass(WebAppClassLoader.java:139)
    	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325)
    	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
    	com.sun.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:228)
    	com.sun.facelets.compiler.Compiler.compile(Compiler.java:104)
    	com.sun.facelets.impl.DefaultFaceletFactory.createFacelet(DefaultFaceletFactory.java:192)
    	com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:141)
    	com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:93)
    	com.sun.facelets.FaceletViewHandler.buildView(FaceletViewHandler.java:503)
    	com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:553)
    	org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
    	org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
    	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
    	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
    	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
    	javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
    	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
    	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
    	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
    	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
    	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

Discussions similaires

  1. erreur de mise a jour avec jsf et ajax
    Par hermannteussido dans le forum JSF
    Réponses: 0
    Dernier message: 10/04/2015, 13h53
  2. Erreur connexion base de données avec script ANT
    Par doons dans le forum Hibernate
    Réponses: 0
    Dernier message: 18/03/2015, 16h57
  3. Recuperer des données avec return
    Par osmanab dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 12/05/2010, 08h43
  4. Réponses: 13
    Dernier message: 19/07/2006, 14h28
  5. utilisation de base de donnée avec JSF
    Par kedare dans le forum JSF
    Réponses: 1
    Dernier message: 16/05/2006, 17h03

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