Hier haben wir eine grundlegende Webapp mit JSP, die einige JSON-basierte REST-Service-URLs bereitstellen muss.
Diese URLs befinden sich alle unter /services
und werden von MyRestServicesController
generiert.
Die Beispiele, die ich für Einstellungen in JSON-basierten Ansichten sehe, verwenden ContentNegotiatingViewResolver
. Aber es scheint mir ein Overkill zu sein, da dieser Resolver für Situationen gedacht ist, in denen die gleiche URL eine andere Ausgabe erzeugen könnte.
Ich möchte nur, dass meine one RestServicesController
immer MappingJacksonJsonView(s)
produziert.
Gibt es eine sauberere, einfachere Möglichkeit, den Controller einfach so zu steuern?
Gibt es eine sauberere, direktere Möglichkeit, den Controller einfach so zu steuern?
Ja, es gibt. Sie können sich dieses Beispiel ansehen, das ich in Spring-Foren gepostet habe. Kurz gesagt, die Art, wie ich es vorziehe, ist durch folgendes.
ApplicationContext:
%Vor%Controller
%Vor%EDIT 2013: In diesen modernen Tagen wäre @ skaffmans Ansatz eine gute Alternative.
Wenn Sie nur JSON ausgeben müssen, ist die Ansichtsebene selbst redundant. Sie können die Annotation @ResponseBody
verwenden , um Spring zu beauftragen, dein Modell direkt mit Jackson zu serialisieren. Es erfordert weniger Konfiguration als die Methode MappingJacksonJsonView
und der Code ist weniger überladen.
Solange Sie mvc: annotation-driven und Jackson auf dem Klassenpfad ist, dann müssen Sie nur @ResponseBody für Ihre Methoden verwenden und der Rückgabetyp wird in JSON pro Spring-Standard konvertiert HTTP Nachrichtenkonvertierung Funktionalität.
Schau dir auch dieses Video um ca. 37:00 Uhr an: Mastering Spring MVC .
Tags und Links java spring-mvc