Envoyer des données JSonObject imbriquées du contrôleur vers Ajax
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:
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:
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:
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.