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 :

Affichage d'une List<Types> en JSF en utilisant Hibernate


Sujet :

JSF Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Points : 13
    Points
    13
    Par défaut Affichage d'une List<Types> en JSF en utilisant Hibernate
    Bonjour à tous,

    J'aurai bien besoin d'une petite aide, cela fait un bon moment que je suis bloqué dessus et trouve aucune issue

    voilà le problème

    j'aimerai afficher une List dans un datatable jusqu'ici ça l'air simple en utilisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <h:dataTable value="#{contractBean.contractsByUserCode}"  var="contractsByUserCode" border="1" >
    <h:column id="code">
    <h:outputText value="#{contractsByUserCode.contractId.ecUserCode}" />
    </h:column>
    le problème est que j'utilise une List que je remplis via une methode (utilisant Hibernate)


    List<Contract> contractsByUserCode = iContractService.getContractsByUserCode(userCode);

    cette dernière méthode fait appel à Hibernate via --> list = this.findByQuery(query);

    Au final ma list est bien remplit et prête à être afficher sur une page JSF mais voilà aucun resultat positif au lieu de recevoir une list j'obtient

    #{contractsByUserCode.contractId.ecUserCode} sur la page

    si quelqu'un peut apporté une solution, ca sera sympas

    Merci à tous
    ------------------------------------------------------------
    voici le contenue de ma classe Contract



    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    import javax.persistence.AttributeOverride;
    import javax.persistence.AttributeOverrides;
    import javax.persistence.Column;
    import javax.persistence.EmbeddedId;
    import javax.persistence.Entity;
    import javax.persistence.Table;
     
    @Entity
    @Table(name = "OUDDEC", catalog = "OZG00UC1")
    public class Contract implements java.io.Serializable {
    	private static final long serialVersionUID = 1L;
    	private ContractId contractId;
     
    	public Contract() {	}
     
    	public Contract(ContractId id) {
    		this.contractId = id;
    	}
     
    	@EmbeddedId
    	@AttributeOverrides({
    	@AttributeOverride(name = "ecUserCode", 	column = @Column(name = "EC_USER_CODE", 	nullable = false, length = 8)),
    	@AttributeOverride(name = "ecPeriodId", 	column = @Column(name = "EC_PERIOD_ID", 	nullable = false)),
    	@AttributeOverride(name = "ecParBuId", 	column = @Column(name = "EC_PAR_BU_ID", 	nullable = false, length = 5)),
    	@AttributeOverride(name = "ecParContrN", 	column = @Column(name = "EC_PAR_CONTR_N", 	nullable = false, length = 10)),
                 @AttributeOverride(name = "ecParExtN", 	column = @Column(name = "EC_PAR_EXT_N", 	nullable = false, length = 5)) } )
     
    	public ContractId getContractId() {
    		return contractId;
    	}
     
    	public void setContractId(ContractId contractId) {
    		this.contractId = contractId;
    	}
    }
     
     
    et ma classe ContractId
     
     
    @Embeddable
    public class ContractId implements java.io.Serializable {
    	private static final long serialVersionUID = 1L;
    	private String ecUserCode;
    	private int ecPeriodId;
    	private String ecParBuId;
    	private String ecParContrN;
    	private String ecParExtN;
     
    	public ContractId() {}
     
    	public ContractId(String ecUserCode, int ecPeriodId, String ecParBuId,
    			String ecParContrN, String ecParExtN) {
    		this.ecUserCode = ecUserCode;
    		this.ecPeriodId = ecPeriodId;
    		this.ecParBuId = ecParBuId;
    		this.ecParContrN = ecParContrN;
    		this.ecParExtN = ecParExtN;
    	}
     
    	@Column(name = "EC_USER_CODE", nullable = false, length = 8)
    	public String getEcUserCode() {
    		return this.ecUserCode;
    	}
     
    	public void setEcUserCode(String ecUserCode) {
    		this.ecUserCode = ecUserCode;
    	}
     
    	@Column(name = "EC_PERIOD_ID", nullable = false)
    	public int getEcPeriodId() {
    		return this.ecPeriodId;
    	}
     
    	public void setEcPeriodId(int ecPeriodId) {
    		this.ecPeriodId = ecPeriodId;
    	}
     
    	@Column(name = "EC_PAR_BU_ID", nullable = false, length = 5)
    	public String getEcParBuId() {
    		return this.ecParBuId;
    	}
     
    	public void setEcParBuId(String ecParBuId) {
    		this.ecParBuId = ecParBuId;
    	}
     
    	@Column(name = "EC_PAR_CONTR_N", nullable = false, length = 10)
    	public String getEcParContrN() {
    		return this.ecParContrN;
    	}
     
    	public void setEcParContrN(String ecParContrN) {
    		this.ecParContrN = ecParContrN;
    	}
     
    	@Column(name = "EC_PAR_EXT_N", nullable = false, length = 5)
    	public String getEcParExtN() {
    		return this.ecParExtN;
    	}
     
    	public void setEcParExtN(String ecParExtN) {
    		this.ecParExtN = ecParExtN;
    	}
     
    	public boolean equals(Object other) {
    	}
     
    	public int hashCode() {
    	}
     
    }

    Merci

  2. #2
    Membre régulier Avatar de mr1azl
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 77
    Points : 107
    Points
    107
    Par défaut
    T'as bien declaré le bean contractsByUserCode dans faces-config.
    Fais voir ton faces-config
    I code

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Non ! faut t'il aussi pour une list ?

    voici mon faces-config

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <managed-bean>
    <managed-bean-name>contractBean</managed-bean-name>
    <managed-bean-class>be.eulerhermes.ehwamtbv4.mtb.web.bean.ContractBean</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    <managed-property>
    <property-name>iContractService</property-name>
    <property-class>be.eulerhermes.ehwamtbv4.mtb.metier.service.ext.IContractService</property-class>
    <value>#{contractService}</value>
    </managed-property>
    <managed-property>
    <property-name>contractId</property-name>
    <property-class>be.eulerhermes.ehwamtbv4.mtb.metier.modele.ContractId</property-class>
    <value>#{contractId}</value>
    </managed-property>
    </managed-bean>

  4. #4
    Membre régulier Avatar de mr1azl
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 77
    Points : 107
    Points
    107
    Par défaut
    Oui l'attribut var doit être un managed bean en fait
    I code

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    et peut être une bête question le "VAR" de quel property-class ?

  6. #6
    Membre régulier Avatar de mr1azl
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 77
    Points : 107
    Points
    107
    Par défaut
    Voila un petit exemple que j'ai fait. J'espère que ça peut t'aider

    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
    //class UserBean.java
    package exemple;
     
    public class UserBean {
    private String name;
     
    public String getName() {
    	return name;
    }
     
    public void setName(String name) {
    	this.name = name;
    }
     
    }
    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
    //class ListControlleur.java
     
    package exemple;
    import java.util.ArrayList;
    import java.util.List;
     
    public class Lists {
     
    	private List<UserBean> users = new ArrayList<UserBean>();
     
    	public Lists() {
     
    		UserBean ub1=new UserBean();
    		UserBean ub2=new UserBean();
    		UserBean ub2=new UserBean();
     
    		ub1.setName("user1");
    		ub2.setName("user2");
    		ub3.setName("user3");
    		users.add(ub1);
    		users.add(ub2);
    		users.add(ub3);
     
    	}
     
    public void setUsers(List<UserBean> users) {
    		this.users = users;
    	}
    	public List<UserBean> getUsers() {
    		return users;
    	}
     
    }
    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
     
    //faces-config.xml
     
    <managed-bean>
    		<managed-bean-name>lists</managed-bean-name>
    		<managed-bean-class>
    			exemple.Lists</managed-bean-class>
    		<managed-bean-scope>session</managed-bean-scope>
    	</managed-bean>
     
    	<managed-bean>
    		<managed-bean-name>user</managed-bean-name>
    		<managed-bean-class>
    			exemples.UserBean</managed-bean-class>
    		<managed-bean-scope>session</managed-bean-scope>
    	</managed-bean>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	// page.xhtml 
     
    	<h:dataTable value="#{lists.users}" var="user" border="1" >
    <h:column >
    <h:outputText value="#{user.name}" />
    </h:column>
     
     
     
    </h:dataTable>
    I code

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Merci de ton aide
    je suis d'accord avec ce que tu mets comme exemple mais je pense que mon problème vas plus loin, le fait d'utiliser des class de type @Embeddable, le fait d'afficher est différent (je pense)

    malgré que qui ma demontré le problème est toujours présent :'(

  8. #8
    Membre régulier Avatar de mr1azl
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 77
    Points : 107
    Points
    107
    Par défaut
    Tu peux essayer de créer un Bean qui fait appel a celui d'hibernate et ne pas utiliser directement ton entity par les pages jsf
    I code

  9. #9
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 25
    Points
    25
    Par défaut Bonjour
    essayer ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    <h:dataTable value="#{contractBean.contractsByUserCode}" var="contractsByUserCode" border="1" >
    <h:column id="code">
    <f:facet name="header">
    Code
    </f:facet>
    <h:outputText value="#{contractsByUserCode.contractId.ecUserCode}" />
    </h:column>

  10. #10
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Salut

    J'ai enfin trouvé le soucis de mon problème

    Merci à tous tout d'abord

    En fait j'ai déclaré deux fois mon objet DAO de mon interface DAO

    dans ma classe "HierarchyServiceImpl" j'instanciais une nouvelle fois mon DAO alors qu'il était déjà fait dans une autre classe
    d'où spring le mettait à null et d'où les soucis ailleurs

    alors que j'avais besoin juste de faire
    getObjetDAO().create(obj);


    Donc le bug est résolue
    merci de votre aide !!! ;-)

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 30
    Points : 32
    Points
    32
    Par défaut
    Pense au bouton résolu, ça va en aider d'autre

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

Discussions similaires

  1. vide une liste de type select
    Par naourass dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 15/04/2009, 09h05
  2. affichage d'une liste
    Par zidenne dans le forum Bases de données
    Réponses: 5
    Dernier message: 31/10/2005, 16h59
  3. [STRUTS/TAGS/COLLECTIONS] affichage d une liste
    Par hinanui dans le forum Struts 1
    Réponses: 22
    Dernier message: 04/07/2005, 14h03
  4. [JDBC] Affichage d'une valeur de type CloB
    Par Jihed Amine Maaref dans le forum JDBC
    Réponses: 3
    Dernier message: 07/04/2005, 15h03
  5. Pb d'affichage apres une liste déroulante
    Par loic.440 dans le forum ASP
    Réponses: 13
    Dernier message: 19/01/2005, 14h28

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