2017-09-19 2 views
0

J'essaie d'afficher un jeu de clés hashmap dans une table bootstrap, mais seul le premier caractère est affiché.Comment afficher Java Hashmap.keySet() dans une table d'amorçage, à partir d'un service de repos java?

Ceci est ma fonction de service reste:

@GET 
@Path("getquizes") 
@Produces(MediaType.APPLICATION_JSON) 
public Collection<String> getQuizes() { 
    System.out.println(activeQuizes.keySet()); 
    return activeQuizes.keySet(); 
} 

Il travaille. C'est ce que je suis recevoir:

Received Json object

Voici mon Html:

  <table data-toggle="table" id="tablequizes" class="display table table-bordered"> 
      <thead> 
      <tr> 
       <th datatype="String">Name</th> 
      </tr> 
      </thead> 
     </table> 

Et mon javascript:

function fetchQuizes() { 
    $.ajax({ 
     url: 'rest/Quiz/getquizes', 
     type: 'GET', 
     datatype: 'json', 
     success: function (data) { 
      console.info(data); 
      $('#tablequizes').bootstrapTable('load', data); 
     }, 
     error: function (result) { 
      console.info(result.responseText); 
     } 
    }); 
} 

Mais le résultat est que montrant le premier caractère dans la tableau:

Bootstrap datatable with hashmap keyset

+0

D'où vient le 'bootstrapTable'? Est-ce une bibliothèque que vous utilisez? –

Répondre

0

Je pense que vous avez trouvé de mal à ce que le keySet() vous donne:

Returns a Set view of the keys contained in this map. 

Vous obtenez seulement la clé et non la valeur de la carte. Pour obtenir l'utilisation de la valeur values()

Returns a Collection view of the values contained in this map 

activeQuizes.values(); //Try with this. 
+0

J'utilise un nom de quiz comme clé. Et je veux une liste de tous les quiz sur mon site. C'est pourquoi j'utilise le jeu de clés, parce que je ne veux qu'une liste des noms des quiz, et non pas l'ensemble du quiz. Comme le montre l'image, je reçois une liste des noms de quiz, mais le problème est de l'afficher dans le tableau. – Jone

0

Vous pouvez essayer de changer votre tablequizes ajax contenu de sortie à un tableau avec certains id nom dans votre JS.

Eg: [ {"name": "Quiz1"}, {"name": "Quiz2"} ] 

et modifier le tag e

<th data-field="name">Name</th> 

Cela devrait résoudre votre problème.