JQGrid JQuery: das laden von JSON-Daten aus Spring MVC 3 @RequestBody

Ich HASSE es, das zu Fragen, weil ich dachte, das soll so einfach wie das zählen 1-2-3. Ich habe recherchiert seit gestern und heute, aber ich habe keine Lösung gefunden.

Hier ist, was ich tun möchte. Abrufen von JSON-Daten aus meiner Spring MVC 3 Controller und Anzeige, dass Daten auf meiner JQGrid.

Zu meine setup-Controller zu senden, die JSON-Daten, folgte ich dem Rat aus diesem Artikel Ajax Vereinfachungen in Spring 3.0

Dieser Antrag mapping verarbeitet die JSON Anfrage:

@RequestMapping(value = "/users", method = RequestMethod.GET)
public @ResponseBody  List<UserDTO>viewUsersAsJSON(HttpServletRequest request, HttpServletResponse response, ModelMap model) {

    logger.debug("Retrieving all users as JSON");

    return userRoleService.getAll();
}

Diese Zuordnung funktioniert, weil ich bin in der Lage, zum abrufen von JSON-Daten aus Firefox und RESTClient. Hier ist die Beispiel-JSON-Daten-Ausgabe (ich hatte zu entfernen, die sensible Daten):

[{"username":"johnsmith","userId":1,"firstName":"John","lastName":"Smith","id":"1"},{"username":"stackoverflow","userId":2,"firstName":"Stack","lastName":"Overflow","id":"2"}]

Ich habe nicht die Angabe Accept=application/json Header oder Firefox RESTClient, um diese Daten abrufen. Ich nur geben Sie die vollständige URL ie: http://localhost/myapp/users

Ich habe es nicht eine spezielle Konfiguration oder XML-config auf meinem Spring MVC 3 Zuordnung, weil ich zu erwarten (auf der Basis der Artikel und die Ergebnisse, die ich bekam), dass es einfach funktioniert und gibt mir JSON.

Hier mein JqGrid wie erklärt, auf meiner JSP-Seite:

Javascript:

 <script type="text/javascript">
 jq(function() {
  jq("#list2").jqGrid({
      url:'/myapp/users',
   datatype: 'json',
   mtype: 'GET',
      colNames:['Id','Username', 'User Id', 'First Name', 'Last Name'],
      colModel:[
       {name:'id',index:'id', width:55},
       {name:'username',index:'username', width:90},
       {name:'userId',index:'userId', width:90},
       {name:'firstName',index:'firstName', width:100},
       {name:'lastName',index:'lastName', width:80, align:"right"}
      ],
      rowNum:10,
      rowList:[10,20,30],
      pager: '#pager2',
      sortname: 'id',
      viewrecords: true,
      sortorder: "desc",
      caption:"Users Table"
  });
  jq("#list2").jqGrid('navGrid','#pager2',{edit:false,add:false,del:false});

 });


</script>

Hier ist meine CSS-Elemente wie erklärt, in der JSP:

<table id="list2"></table>
<div id="pager2"></div>

Lief ich Firefox Fehler-Konsole. Keine Fehler gefunden. Ich lief Firebug. Ich sehe keine Fehler.

Den JqGrid lädt mit der richtigen Spaltennamen, aber es ist leer! Ich setup eine andere JqGrid auf eine andere JSP-Seite mit einem einfachen array-Daten und es ist in der Lage, die Daten zu laden. Irgendwelche Ideen oder Lösungen?

Es ist wirklich schwer zu finden, jede funktionierende Beispiele von Spring MVC 3 JSON integration JqGrid.

InformationsquelleAutor chris | 2010-11-18
Schreibe einen Kommentar