Bonsoir

J'ai deux tables, Client et Dossier. Un client peut avoir plusieurs dossiers et un dossier n'appartient qu'à un seul client.

J'utilise Spring pour récupérer la liste des clients et je la renvoie à ajax pour l'affichage:

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
@RequestMapping(value="/rechercherEntrepot", method=RequestMethod.POST)
	public void getEntrepot(ModelMap model, @RequestParam(name = "typeRecherche") String typeRecherche,@RequestParam(name = "nomClientRecherche") String nomClient,@RequestParam(name = "numDossierRecherche") String numDossier, @RequestParam(name = "dateDebut") String dateDebut, @RequestParam(name = "dateFin") String dateFin,HttpServletResponse response) throws ServletException, IOException {
 
		 response.setContentType("text/html;charset=UTF-8");
 
		 List<Client> listeClients = clientService.getAllClients();
 
		 if (listeClients.isEmpty()) {
				response.getWriter().println("Aucun résultat trouvé!");
			}
		 else
			{
				List<JSONObject> entities = new ArrayList<JSONObject>();
 
			    for (Client n : listeClients) {
			    	JSONObject entity = new JSONObject();
			    	entity.put("idClient", n.getIdClient());
			    	entity.put("nomClient", n.getNomClient());   	
			    	entities.add(entity);
			    }			    
 
			    response.getWriter().println(Arrays.toString(entities.toArray()));
			}
	}

Ensuite je récupère cette liste dans ma requête ajax et je l'affiche dans un tableau html:

Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 $.each(response, function(i, obj) {	
 
	               $('#example tbody').append('<tr><td>'+obj.idClient+'</td><td>'+obj.nomClient+'</td></tr>'); 
	        	});

Sauf que j'aimerai aussi afficher la liste des dossiers pour chaque client.

Donc coté contrôleur voici comment je procéde pour ajouter les dossiers pour chaque client:

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
List<JSONObject> entities = new ArrayList<JSONObject>();
				List<String> entities2 = new ArrayList<String>();
 
			    for (Client n : listeClients) {
			    	JSONObject entity = new JSONObject();
			    	entity.put("idClient", n.getIdClient());
			    	entity.put("nomClient", n.getNomClient());  
 
			    	// Ajout de dossiers pour chaque client
			    	 List<Dossier> ListeDossiers = dossierService.findListeDossierByIdClient(n.getIdClient());
			    	 if (ListeDossiers.isEmpty()) {
			    		 entity.put("dossiers", "vide");
			 			} 
			    	 else
				    	 {
			    		 	entities2.clear();
				    		 for (Dossier e : ListeDossiers) {					    		
					    		 entities2.add(e.getNumDossier());
				    	 }			    	 
				    	 entity.put("dossiers", Arrays.toString(entities2.toArray()).split("[\\[\\]]")[1]);
			    	 }
			    	// Fin Ajout de dossiers pour chaque client
 
			    	entities.add(entity);
			    }
    response.getWriter().println(Arrays.toString(entities.toArray()));

Sauf que coté ajax, je ne sais pas comment disposer la liste des dossiers pour chaque client.

J'ai ouvert une discussion sur ce site dans la partie ajax, mais toujours rien. Voici le lien de la discussion:

https://www.developpez.net/forums/d2...s-boucle-each/

En gros, comment récupérer une liste de données imbriquées dans ajax provenant de spring.