2009-10-21 11 views
29

Gibt es eine Möglichkeit, Spring Web Aufrufe zu erstellen, die konsumieren und produzieren application/json formatierte Anfragen bzw. Antworten?Spring 3 JSON mit MVC

Vielleicht ist dies nicht Spring MVC, ich bin mir nicht sicher. Ich suche nach Spring-Bibliotheken, die sich ähnlich wie Jersey/JSON verhalten. Der beste Fall wäre, wenn es eine Anmerkung gäbe, die ich zu den Controller-Klassen hinzufügen könnte, die sie in JSON Serviceaufrufe verwandeln würden.

Ein Tutorial zeigt, wie Spring Web Services mit JSON zu bauen wäre toll.


EDIT: Ich bin für eine Annotation basierten Ansatz (ähnlich Jersey) suchen.

EDIT2: Wie Jersey, suche ich nach REST-Unterstützung (POST, GET, DELETE, PUT).

EDIT3: Am meisten bevorzugt werden dies die pom.xml Einträge und einige Informationen über die Verwendung der Feder-js mit Jacksons Feder native Version der Dinge.

+0

Ähnliches Thema wird hier angesprochen: http://stackoverflow.com/questions/658936/is-there-a-library-to-convert-java-pojos-to-and-from-json-and-xml –

+0

dma_k - diese Frage ist wirklich nicht so ähnlich. Diese Frage fragt nach der Konvertierung zwischen Java-Objekten und JSON, diese fragt speziell, wie Spring MVC verwendet wird, um JSON-Nachrichten zu senden und zu empfangen. – stevedbrown

Antwort

17

Sie können sicherlich Controller haben, die eine View zurückgeben, die in JSON-Ausgabe ist. Werfen Sie einen Blick auf the Spring-JSON project.

Um Anforderungen in JSON zu konsumieren, würde ich annehmen, dass Sie nur möchten, dass ein Controller einen Anforderungsparameter an eine JSON-Bibliothek weitergibt, die die Daten parsen könnte?

+1

Das ist nicht genau das, was ich will. Es sollte wie Jersey funktionieren, ich möchte nichts verraten, der MVC-Controller sollte mit einem JSON-Aspekt-Layer (wahrscheinlich durch Anmerkungen) umschlossen sein, damit er JSON senden und empfangen kann. Das Spring-JSON-Projekt macht die Hälfte (Senden), aber nicht die andere Hälfte. – stevedbrown

4

Es gibt keine abgepackte Art und Weise zu tun, was Sie wollen, wie Jersey schön mit Frühling über die Jersey-Spring API integriert ist, so gibt es wirklich keinen Grund, das Rad neu erfinden.

+0

Ich verwende derzeit Jersey und es ist gut. Um ehrlich zu sein, finde ich die Spring-Integration nicht so zwingend, was nicht wirklich eine große Sache ist. Ähnlich wie Spring MVC im Vergleich zu Struts erwarte ich nicht wirklich viel Änderung mit der Spring Rest JSON-Funktionalität, ich versuche nur herauszufinden, ob es tatsächlich existiert, damit ich es ausprobieren kann. – stevedbrown

0

Es scheint, dass DWR Framework sieht sehr nah an dem, was Sie erhalten möchten.

0

Sie können Spring MVC-Interzeptoren über handler mappings konfigurieren und dann mithilfe der Zuordnungen die zurückgegebenen Daten in JSON umwandeln. Die Handler-Konfiguration kann in XML erfolgen (keine Neukompilierung erforderlich), und dies kann für den Rest der Anwendung vollständig transparent sein.

Es ist relativ einfach, Controller mit einer Anmerkung zu kommentieren und dann den BeanFactory-Bootstrap-Prozess anzuschließen, um die Controller in einem Handler-Mapping-Prozess zu registrieren.

Ich habe diesen Ansatz verwendet, um das Ergebnis von Federsteuerungen in GWT RPC-Aufrufe zu transformieren.

Sie können Spring AOP auch verwenden, um Controller-Methodenaufrufe abzufangen und die Anforderungen von/nach JSON auszupacken/zu verpacken.

2

Seit Frühjahr-MVC 3.0 offizielle Unterstützung für Ajax Remoting mit JSON ist als Teil von Spring MVC zur Verfügung gestellt.Dies umfasst die Unterstützung für das Generieren von JSON-Antworten und das Binden von JSON-Anforderungen mithilfe des Spring MVC @Controller-Programmiermodells.

siehe here