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 :

Besoin des dependences JSF 2.2 maven pour injecter dans des converters


Sujet :

JSF Java

  1. #1
    Membre confirmé Avatar de bruneltouopi
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 308
    Points : 466
    Points
    466
    Par défaut Besoin des dependences JSF 2.2 maven pour injecter dans des converters
    Bonjour
    Je veux injecter des mes converters

    Or il parait qu'en JSF 2.0 ce n'est pas encore possible

    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
    package Converters;
     
    import dao.PaysDao;
    import dao.Section1Dao;
    import dao.SectionDao;
    import javax.annotation.ManagedBean;
    import javax.ejb.EJB;
    import javax.faces.application.FacesMessage;
    import javax.faces.component.UIComponent;
    import javax.faces.context.FacesContext;
    import javax.faces.convert.Converter;
    import javax.faces.convert.ConverterException;
    import javax.faces.convert.FacesConverter;
    import javax.naming.InitialContext;
    import modele.Section;
     
    /**
     *
     * @author fabrice
     */
     
    @FacesConverter
    public class SectionConverter implements Converter{
     
        @EJB
        private SectionDao sectionDao;
     
        @Override
            public Object getAsObject(FacesContext fc, UIComponent uic, String value) {
                //tu dois retourne l'objet donc ici la section
            try{    
               return sectionDao.find(Long.valueOf(value));
                 } catch (Exception e) {
                throw new ConverterException(new FacesMessage(String.format("Cannot convert %s to Section",value)), e);
            }
            }
     
            @Override
            public String getAsString(FacesContext fc, UIComponent uic, Object value) {
                FacesContext ctx = FacesContext.getCurrentInstance();
                 //tu formalises l'affichage donc value ici est la section
                  return String.valueOf(((Section)value).getId());
            }
    }
    je voudrais les dependences maven JSF 2.2 pour pouvoir me donner la possibilité d'injecter ou alors si quelqu'un a une idée ou une autre méthode pour contourner cela.

    Cordialement
    Ce qui ne me tue pas me rend plus fort.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Points : 495
    Points
    495
    Par défaut
    Citation Envoyé par bruneltouopi Voir le message
    je voudrais les dependences maven JSF 2.2 pour pouvoir me donner la possibilité d'injecter ou alors si quelqu'un a une idée ou une autre méthode pour contourner cela.
    Pour les dépendances Maven de JSF 2.2, je ne sais pas trop, je n'ai pas cherché, mais pour une solution rapide de contournement avec JSF 2.0, il te suffirait d'ajouter Seam Faces dans ton classpath, en ajoutant la dépendance:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <dependency>
      <groupId>org.jboss.seam.faces</groupId>
      <artifactId>seam-faces</artifactId>
      <version>3.1.0.Final</version>
    </dependency>
    Seam Faces est une extension CDI, et si tu n'utilises pas encore CDI dans ton projet, il te faudrait l'activer en créant un fichier (vide) beans.xml dans le WEB-INF.
    Ceci devrait te permettre de faire l'injection dans tes converters, validators, ... et bien plus encore... A toi d'explorer ensuite cette nouvelle spec de Java EE 6.
    SCJP 5 / SCBCD 1.3 Certified

  3. #3
    Membre confirmé Avatar de bruneltouopi
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 308
    Points : 466
    Points
    466
    Par défaut CDI ou injection classique
    oui j'ai déjà eu à utiliser CDI mais j'ai eu à poser un problème ici http://www.developpez.net/forums/d12...-managed-bean/
    Ce qui ne me tue pas me rend plus fort.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Points : 495
    Points
    495
    Par défaut
    Le problème que tu posais dans l'autre thread n'était pas lié à CDI, il y avait un NullPointerException quelque part qui empêchait la création de l'ejb. Enfin bref, tu l'as sûrement résolu depuis...

    Mais ici, est-ce que l'injection dans le converter fonctionne quand tu ajoutes la dépendance Seam Faces ? Ou tu obtiens d'autres erreurs ?
    SCJP 5 / SCBCD 1.3 Certified

  5. #5
    Membre confirmé Avatar de bruneltouopi
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 308
    Points : 466
    Points
    466
    Par défaut Confusion de liens
    En fait j'avais confondu de discussion voici le vrai lien http://www.developpez.net/forums/d12...e-application/

    Je n'ai pas reussi à telecharger seams-faces j'ai toujours une erreur lors du telechargement je vais essayer de le prendre manuellement
    Ce qui ne me tue pas me rend plus fort.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Points : 495
    Points
    495
    Par défaut
    Citation Envoyé par bruneltouopi Voir le message
    Je n'ai pas reussi à telecharger seams-faces j'ai toujours une erreur lors du telechargement je vais essayer de le prendre manuellement
    Ah oui, c'est vrai que les modules Seam 3 ne sont pas sur Maven Central. Ajoute ceci dans ton fichier settings.xml à l'intérieur des balises <profiles></profiles> :
    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
     
    <profile>
           <id>jboss-public-repository</id>
           <activation>
              <property>
                 <name>jboss-public-repository</name>
                 <value>!false</value>
              </property>
           </activation>
           <repositories>
              <repository>
                 <id>jboss-public-repository-group</id>
                 <name>JBoss Public Maven Repository Group</name>
                 <url>http://repository.jboss.org/nexus/content/groups/public</url>
                 <releases>
                    <enabled>true</enabled>
                    <updatePolicy>never</updatePolicy>
                 </releases>
                 <snapshots>
                    <enabled>false</enabled>
                    <updatePolicy>never</updatePolicy>
                 </snapshots>
              </repository>
           </repositories>
           <pluginRepositories>
              <pluginRepository>
                 <id>jboss-public-repository-group</id>
                 <name>JBoss Public Maven Repository Group</name>
                 <url>http://repository.jboss.org/nexus/content/groups/public</url>
                 <releases>
                    <enabled>true</enabled>
                    <updatePolicy>never</updatePolicy>
                 </releases>
                 <snapshots>
                    <enabled>false</enabled>
                    <updatePolicy>never</updatePolicy>
                 </snapshots>
              </pluginRepository>
           </pluginRepositories>
        </profile>
    SCJP 5 / SCBCD 1.3 Certified

  7. #7
    Membre confirmé Avatar de bruneltouopi
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 308
    Points : 466
    Points
    466
    Par défaut @Named ou/et @ManagedBean en JSF
    Merci j'ai pu le telecharger mais là je tombe sur la problèmatique comment de l'impact de l'utilisation de @Named et @ManagedBean au sein d'une même application.
    Ce qui ne me tue pas me rend plus fort.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Points : 495
    Points
    495
    Par défaut
    En principe le fait d'utiliser des beans JSF (@ManagedBean) et des beans CDI (annotés @Named) au sein d'une même application JSF n'a aucun impact sur ton application. Tout fonctionnera normalement.

    C'est juste qu'on alors deux modèles de programmation différents pour définir le même type de beans, ce qui n'est pas, disons, assez propre, d'un point de vue maintenabilité. Mais bon, tant que tu es bien conscient de ce que tu fais, il n'y a pas de souci.

    D'ailleurs, étant donné que tu as maintenant Seam Faces dans le classpath, tu peux annoter tes beans @Named @ViewScoped, comme ça tu gardes un modèle cohérent de nommage EL de tes beans. C'est ce que Seam Faces ajoute entre autres à l'intégration CDI - JSF.
    SCJP 5 / SCBCD 1.3 Certified

  9. #9
    Membre chevronné
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Points : 2 112
    Points
    2 112
    Par défaut
    Je ne vois pas trop où est le problème de base.

    ton converter, utilise @ManagedBean dessus, sur le scope que tu veux (en view par exemple), et ensuite tu peux y faire référence dans ta page avec l'attribut "converter" comme tout autre managed Bean :

    par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <h:selectOneMenu    converter="#{sectionConverter}"  >
    Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ...

  10. #10
    Membre confirmé Avatar de bruneltouopi
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 308
    Points : 466
    Points
    466
    Par défaut
    c'est gentil je trouvais juste plus propre d'utiliser @FacesConverter mais j'ai déjà un convertisseur générique qui fonctionne bien.

    Aussi je tiens à préciser q'une fois que Seam est dans votre classpath il est recommande de changer @ManagedBean en @Named
    Ce qui ne me tue pas me rend plus fort.

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/08/2012, 12h03
  2. Modifier les touches utilisées par défaut pour naviguer dans des RadioButton [WPF] [VB]
    Par Jayme65 dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 11/05/2011, 00h43
  3. Réponses: 8
    Dernier message: 25/08/2010, 08h06
  4. Réponses: 5
    Dernier message: 02/08/2010, 16h25
  5. Réponses: 8
    Dernier message: 08/03/2007, 16h54

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