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

Spring Boot Java Discussion :

Impossible de récupérer une propriété du modèle dans la vue


Sujet :

Spring Boot Java

  1. #1
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    578
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 578
    Par défaut Impossible de récupérer une propriété du modèle dans la vue
    Bonjour

    J'ai une requête en jpa qui me permet de récupérer la liste de tous les dossiers à partir de l'identifiant d'un client (un client peut avoir plusieurs dossiers):

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     @Query("FROM Dossier a WHERE a.client.idClient = :idClient")
    	 List<Dossier> findDossierByIdClient( @Param("idClient") long idClient);

    En fonction de l'identifiant du client, j'affiche la liste des dossiers:

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    model.put("clients", clientService.getAllNomClients());
    		 List<Client> listeClients = clientService.getAllNomClients();
    		 for (Client d : listeClients) {
    			 model.put(d.getNomClient(), dossierService.findDossierByIdClient(d.getIdClient()));
    		 }

    Donc je mets le nom du client en paramètre, et la liste de ses dossiers comme valeur.

    Ensuite dans la liste, j'affiche le résultat:

    Code jsp : 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
     <c:forEach items="${clients}" var="client" varStatus="boucle">  
                    <h4 class="card-title">Client N° ${boucle.count}: <span id="nomClient">${client.nomClient}</span></h4>  
                       <!-- begin row -->
                            <div class="row ">
                                <div class="col-lg-12">
                                    <div class="card card-statistics">
                                        <div class="card-body">
                                            <div class="datatable-wrapper table-responsive">
                                            <c:forEach items="${client.nomClient}" var="dossier" varStatus="boucle"> 
                                                <table id="myTable" class="display compact table table-striped table-bordered ">
                                                    <thead>
                                                        <tr>
                                                        	<th>#</th>
                                                        	<th class="bg-light">N° dossier: ${dossier.numDossier} </th>
                                                        	<th>N° Déclaration</th>
                                                            <th>Date entrée</th>
                                                            <th>Nom Article</th>
                                                            <th>Type article</th>
                                                            <th>Quantité entrée</th>
                                                            <th>Quantité Sortie</th>
                                                            <th>Quantité en stock</th>                                                        
                                                        </tr>
                                                    </thead>
                                                    <tbody>
     
                                                      <tr>
     
                                                      </tr>
     
     
                                                    </tbody>                                                
                                                </table>
                                                </c:forEach>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                             </c:forEach>

    Je reçois ce message d'erreur:

    Caused by: javax.el.PropertyNotFoundException: La propriété [numDossier] n'a pas été trouvée sur le type [java.lang.String]
    Pourtant mon modèle est bien en place:

    Code java : 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
    @Entity
    @Table(name = "DOSSIER")
    public class Dossier {
     
    	@Id
    	@GeneratedValue(strategy = GenerationType.IDENTITY)
    	@Column(name = "ID_DOSSIER", updatable = false, nullable = false)
    	private long idDossier;
     
    	@Column(name = "NUM_DOSSIER",  insertable=true, updatable=true, nullable=false)
    	private String numDossier;
     
    	@ManyToOne(fetch = FetchType.LAZY)
    	@JoinColumn(name = "client_id", nullable = false)
    	private Client client;
     
    	@OneToMany(mappedBy="dossier", cascade = CascadeType.ALL)
        private Set<Entree> entrees;
     
     
    	public Dossier() {
    		super();
    	}
     
    	public Dossier( String numDossier, boolean isDone) {
    		super();
    		this.numDossier = numDossier;		
    	}
     
    	public long getIdDossier() {
    		return idDossier;
    	}
     
    	public void setIdDossier(long idDossier) {
    		this.idDossier = idDossier;
    	}
     
    	public String getNumDossier() {
    		return numDossier;
    	}
     
    	public void setNumDossier(String numDossier) {
    		this.numDossier = numDossier;
    	}
     
    	public Client getClient() {
    		return client;
    	}
    	public void setClient(Client client) {
    		this.client = client;
    	}
     
    	public Set<Entree> getEntrees() {
    		return entrees;
    	}
    	public void setEntrees(Set<Entree> entrees) {
    		this.entrees = entrees;
    	}
     
    }

    Merci

  2. #2
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    578
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 578
    Par défaut
    C'est ok ça marche. Il fallait juste faire ceci:

    Code jsp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     <c:set var = "nom"  value = "${client.nomClient}"/>
                                            <c:forEach items="${requestScope[nom]}" var="dossier" varStatus="boucle"> 
                                                <table class="myTable" class="display compact table table-striped table-bordered ">
                                                    <thead>
                                                        <tr>
                                                        	<th>#</th>
                                                        	<th class="bg-light">N° dossier: ${dossier.numDossier}</th>

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

Discussions similaires

  1. Recherche dans une table : impossible de récupérer une saisie
    Par wolfenjava dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 21/07/2012, 21h04
  2. Réponses: 1
    Dernier message: 08/11/2010, 11h24
  3. Récupérer une propriété d'un control dans une DynamicResource
    Par Eggiz dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 04/05/2009, 14h48
  4. Réponses: 3
    Dernier message: 16/07/2008, 11h01
  5. Réponses: 2
    Dernier message: 23/11/2006, 21h23

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