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

Développement Web en Java Discussion :

Est-il possible d'instancier en EL


Sujet :

Développement Web en Java

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Est-il possible d'instancier en EL
    Bonjour, j'aimerai savoir s'il est possible d'instancier mon bean dans l'E.L (expression langage). Je m'explique voici ma class abstract :
    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
     
    package list;
     
    import java.io.Serializable;
    import java.util.ArrayList;
    import java.util.List;
    import javax.annotation.PostConstruct;
    import javax.ejb.EJB;
    import javax.faces.bean.ApplicationScoped;
    import javax.faces.bean.ManagedBean;
    import unit.AbstractFacade;
     
    @ManagedBean
    @ApplicationScoped
    public abstract class AbstractList<T> implements Serializable{
        private List<T> l;
        @EJB
        AbstractFacade<T> df;
     
        public AbstractList() {
            l = new ArrayList<T>();
        }
     
        public List<T> getL() {
    	return l;
        }
     
        public void setL(List<T> l) {
    	this.l = l;
        }
     
        @PostConstruct
        public void addData(){
    	l.addAll(df.findAll());
        }
    }
    Et dans mon fichier xhtml, quand j'appel le bean, s'il est possible d'instancier le type de ma classe (avec l'entity), du style : (la ligne suivante ne compile, c'est pour donner l'idée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <h:dataTable value="#{abstractList<Data1>.l}" var="item">
    Si oui, quelle est la syntaxe du EL ?

    merci

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    un managedbean ne doit pas être abstract. Je suis même étonné que ton application démarre

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Merci pour ta réponse. Cela réponds à ma question, en fait. C'est sur ça ne compilait pas. Je voulais juste savoir si on pouvait instancier le managedbean dans le E.L. Mais comme je ne savais pas que le bean ne pouvait pas être abstrait, c'est sur, que la question ne pose pas.

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    C'est un non sens complet de vouloir instancier une classe abstraite Par définition, une classe abstraite ne peut pas être instanciée...

    Que je sache, on n'a pas la possibilité d'instancier une classe (par new) en EL, on peut en revanche appeler une méthode d'un managedBean pour le faire...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Je m'exprime mal, je voulais dire donner le type de ma classe abstraite dans l' E.L, pour éviter d'écrire une class qui extends AbstractList<monType> en java. Merci pour vos réponses en tout cas.

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Si la classe est abstraite, c'est qu'il lui manque des choses, en général des méthode, donc comment tu voudrait que l'EL devine comment implémenter les méthode manquantes.

    Si il ne manque rien, faut se poser la question alors de pourquoi elle est abstraite.

    Enfin, un managedBean, ça ne s'instancie pas, laisse le conteneur se charger de leur instanciation en fonction des contextes. Dans ton exemple, cette classe aurait une unique instance globale.

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Merci c'est plus clair. J'ai fait une classe abstraite parce que j'ai plusieurs type de données. Ok, je clos. En tout cas, j'ai bien compris pourquoi ce n'est pas possible.

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Ta classe n'a Le faucun intérête ici à être abstraite. Le fait qu'une classe soit générique ne veux pas dire qu'elle soit abstraite. Regarde ArrayList<T>, cette classe est générique, on peux l'instancier pour différents types de données, mais elle n'est pas abstraite.

  9. #9
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    aaaaaaaa oui. Je confonds les deux, même si ca n'a rien à voir (Je ferai honte à mon prof de java). Mais du coup, Est-ce tu penses que je peux choisir mon type de donnée dans le E.L directement ou je suis obligé de définir mon type de donnée dans une classe java ?

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Il n'y a qu'une seule instance, donc un seul type de donnée et en EL on se fout un peu de savoir quel type est utilisé puisqu'il n'y a pas de vérification à la compilation et que le generic n'interviennent qu'à la compilation.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/03/2011, 10h17
  2. Généricité et instanciation, est-ce possible ?
    Par dobfatch dans le forum Langage
    Réponses: 2
    Dernier message: 07/09/2007, 10h56
  3. Réponses: 3
    Dernier message: 29/07/2003, 09h38
  4. Réponses: 2
    Dernier message: 16/05/2003, 10h14
  5. [CR] Est il possible de créer des univers avec Seagate Info?
    Par Frank dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 27/06/2002, 15h22

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