2017-04-12 2 views
0

J'ai une date jquery qui devrait être chargée avec une table de données. J'utilise Struts2 Hibernate.dataTables non remplis dans struts2 hibernate

JSP Page:

<script> 
    $(document).ready(function() { 
      $(".jqueryDataTable").dataTable({ 
        "sPaginationType" : "full_numbers", 
        "bProcessing" : false, 
        "bServerSide" : false, 
        "sAjaxSource" : "getProductPropData", 
        "bJQueryUI" : true, 
        "aoColumns" : [ 
       { "mData": "densityId" }, 
       { "mData": "densityDescription" } 
      ] 
     }); 
    }); 
    </script> 

struts.xml

<package name="json" namespace="/" extends="json-default"> 
    <action name="getProductPropData" class="com.test.action.PropertyListDataAction"> 
    <result type="json"> 
     <param name="excludeNullProperties">true</param> 
     <param name="noCache">true</param> 
    </result> 
    </action> 
</package> 

Class Action:

public String execute() throws Exception { 
     // TODO Auto-generated method stub 

     SessionFactory sf = (SessionFactory) ctx.getAttribute("SessionFactory"); 
     ProductPropertyDAO pdao = new ProductPropertyDAOImpl(sf); 
     List<DensityGroup> dg = pdao.getProductPropListData("Density"); 
     Gson gson = new Gson(); 
     jsonData = gson.toJson(dg); 
     System.out.println("dg:"+dg); 
     return "success"; 
     } 

Je reçois une réponse de la base de données au format JSON mais mon datatable ne reçoit pas peuplé.

Console Output[![][1]] 2

JSON:

{"jsonData":"[{\"densityId\":15,\"validationAware\":{}},{\"densityId\":11,\"densityDescription\":\"Mcvr\",\"validationAware\":{}},{\"densityId\":14,\"densityDescription\":\"test\",\"validationAware\":{}},{\"densityId\":16,\"densityDescription\":\"Chitti\",\"validationAware\":{}},{\"densityId\":12,\"densityDescription\":\"MCVR\",\"validationAware\":{}},{\"densityId\":13,\"densityDescription\":\"4\\\" DIA\",\"validationAware\":{}},{\"densityId\":14,\"densityDescription\":\"test\",\"validationAware\":{}},{\"densityId\":15,\"validationAware\":{}},{\"densityId\":21,\"densityDescription\":\"1 1\/4\\\" DIA\",\"validationAware\":{}},{\"densityId\":22,\"densityDescription\":\"3\/4\\\" DIA\",\"validationAware\":{}},{\"densityId\":37,\"densityDescription\":\"25\\\"DIA\",\"validationAware\":{}},{\"densityId\":24,\"densityDescription\":\"8\\\" DIA\",\"validationAware\":{}},{\"densityId\":25,\"densityDescription\":\"1 1\/8\\\" DIA\",\"validationAware\":{}},{\"densityId\":28,\"densityDescription\":\"6\\\"\",\"validationAware\":{}},{\"densityId\":29,\"densityDescription\":\"1\/2\\\" DIA\",\"validationAware\":{}},{\"densityId\":30,\"densityDescription\":\"EXHAUST STEAM\",\"validationAware\":{}},{\"densityId\":19,\"densityDescription\":\"1 1\/2\\\" DIA\",\"validationAware\":{}},{\"densityId\":44,\"densityDescription\":\"EXHAUSTCLADDING\",\"validationAware\":{}},{\"densityId\":1,\"densityDescription\":\"16 KG\",\"validationAware\":{}},{\"densityId\":11,\"densityDescription\":\"Mcvr\",\"validationAware\":{}},{\"densityId\":2,\"densityDescription\":\"20 KG\",\"validationAware\":{}},{\"densityId\":3,\"densityDescription\":\"24 KG\",\"validationAware\":{}},{\"densityId\":5,\"densityDescription\":\"48 KG\",\"validationAware\":{}},{\"densityId\":6,\"densityDescription\":\"64 KG\",\"validationAware\":{}},{\"densityId\":7,\"densityDescription\":\"96 KG\",\"validationAware\":{}},{\"densityId\":8,\"densityDescription\":\"100 KG\",\"validationAware\":{}},{\"densityId\":9,\"densityDescription\":\"128 KG \",\"validationAware\":{}},{\"densityId\":10,\"densityDescription\":\"120 KG \",\"validationAware\":{}},{\"densityId\":18,\"densityDescription\":\"144KG\",\"validationAware\":{}},{\"densityId\":23,\"densityDescription\":\"5\\\" DIA\",\"validationAware\":{}},{\"densityId\":26,\"densityDescription\":\"4\\\"\",\"validationAware\":{}},{\"densityId\":27,\"densityDescription\":\"125 KG\",\"validationAware\":{}},{\"densityId\":34,\"densityDescription\":\"10\\\" DIA\",\"validationAware\":{}},{\"densityId\":32,\"densityDescription\":\"18\\\" \",\"validationAware\":{}},{\"densityId\":33,\"densityDescription\":\"12\\\" DIA\",\"validationAware\":{}},{\"densityId\":35,\"densityDescription\":\"14\\\" DIA\",\"validationAware\":{}},{\"densityId\":36,\"densityDescription\":\"5\/8\\\" DIA\",\"validationAware\":{}},{\"densityId\":38,\"densityDescription\":\"(1\/2 x 24 SWG)\",\"validationAware\":{}},{\"densityId\":39,\"densityDescription\":\"8\\\" FLANGE\",\"validationAware\":{}},{\"densityId\":40,\"densityDescription\":\"6\\\" FLANGE\",\"validationAware\":{}},{\"densityId\":41,\"densityDescription\":\"3\\\" FLANGE\",\"validationAware\":{}},{\"densityId\":42,\"densityDescription\":\"25 MM DIA\",\"validationAware\":{}},{\"densityId\":43,\"densityDescription\":\"150 KG\",\"validationAware\":{}},{\"densityId\":46,\"densityDescription\":\"INSULATION WORK\",\"validationAware\":{}},{\"densityId\":47,\"densityDescription\":\"18\\\" DIA\",\"validationAware\":{}},{\"densityId\":16,\"densityDescription\":\"Chitti\",\"validationAware\":{}},{\"densityId\":45,\"densityDescription\":\"1 3\/8 DIA\",\"validationAware\":{}},{\"densityId\":56,\"densityDescription\":\"18 KG\",\"validationAware\":{}},{\"densityId\":55,\"densityDescription\":\"40 KG\",\"validationAware\":{}},{\"densityId\":48,\"densityDescription\":\"85 KG\",\"validationAware\":{}},{\"densityId\":49,\"densityDescription\":\"2\\\"\",\"validationAware\":{}},{\"densityId\":50,\"densityDescription\":\"12 KG\",\"validationAware\":{}},{\"densityId\":53,\"densityDescription\":\"FLANGES\",\"validationAware\":{}},{\"densityId\":51,\"densityDescription\":\"2 1\/2\\\" DIA\",\"validationAware\":{}},{\"densityId\":52,\"densityDescription\":\"INSULATION \",\"validationAware\":{}},{\"densityId\":54,\"densityDescription\":\"VALVES\",\"validationAware\":{}},{\"densityId\":57,\"densityDescription\":\"CLASS O\",\"validationAware\":{}},{\"densityId\":58,\"densityDescription\":\"140 KG\",\"validationAware\":{}},{\"densityId\":59,\"densityDescription\":\"30 KG\",\"validationAware\":{}}]"} 
+0

Accédez à l'onglet réseau et voir ce que le JSON venir regarde en arrière comme. Il existe des propriétés spécifiques qui doivent être présentes par les documents datatable. De plus, bServerSide devrait être vrai. –

+0

J'ai attaché une image ici avec ce qui vient dans l'onglet réseau. Je reçois un JSON mais je ne suis pas sûr que le format du JSON est correct voir: https://i.stack.imgur.com/kh1Nj.png –

+0

Ce json n'est pas correct pour DataTables. Voici le doc pour ce que le json doit ressembler à revenir. http://legacy.datatables.net/release-datatables/examples/data_sources/server_side.html –

Répondre

0

Par datatables par défaut recherche l'élément 'données' dans le JSON. Il ne peut pas le trouver, c'est donc 'indéfini'. DataTables fournit un moyen de spécifier l'élément à utiliser. En comparant votre json avec celui sur le lien de documentation ci-dessous, vous devriez pouvoir spécifier ajax.dataSrc = "jsonData" ou changer "jsonData" en "data" dans votre objet de données. Je recommanderais de passer à la nouvelle convention de dénomination pour les options datatable si possible, c'est plus clair et la documentation est adaptée à ce sujet. Si vous ne pouvez pas utiliser le nouveau schéma de nommage, changer votre objet json est probablement la meilleure option.

Documentation: https://datatables.net/examples/ajax/custom_data_property.html

+0

Merci pour la réponse.J'ai changé le nom en 'données' Je reçois les erreurs suivantes 1) Obtenir deux messages pop-up un après l'autre https://i.stack.imgur.com/rkZHO.png https://i.stack.imgur.com/VytVt.png 2) En voyant 3 992 entrées dans la table, mon JSON n'est pas si long. https://i.stack.imgur.com/WGY6f.png 3) Si je saisis une chaîne à la recherche bar, je vois qu'il filtre. https://i.stack.imgur.com/YZ3U3.png ** Suivez les liens pour voir les captures d'écran ** –

+1

Il existe d'autres problèmes avec vos données.Votre configuration datatable spécifie deux noms à rechercher, densityId et densityDescription, ceux-ci DOIVENT être présents les données pour chaque ligne. Votre première ligne ne contient pas un noeud densityDescription provoquant l'erreur datatables.net/tn/4. Les autres erreurs concernent le même problème, mais le nom de noeud différent. Assurez-vous que chaque ligne contient tous les champs référencés dans la configuration datatable. Après cela, vous devriez commencer à voir des données dans votre tableau. – ScratchyBadger