2016-04-24 4 views
3

zu bedienen Ich wollte meine Grails 3.1.5 App beiden JSON-Daten im Format * .gson dienen AND, für einige Seiten/URLs wollte ich weiterhin GSPs verwenden .Notwendigkeit, beide GSPs und JSON aus einer Grails 3.1.5 App

Ich baute eine App mit dem Rest-API-Profil. Dann kopierte ich über Controller und Ansichten von einer anderen App, die ich mit der Web-API erstellt hatte.

Dabei, und um konsistent zu sein, habe ich auch index.gson an einen anderen Ort verschoben. Jetzt

ich ein:

Could not resolve view with name 'index' in servlet with name 'grailsDispatcherServlet' 

Schritte in die viewResolvers Graben, der in der 3.1.5 Code-Basis zur Verfügung stehen. Es ist möglich, dass das Rest-API-Profil einen viewResolver konfiguriert, um nach * .gson-Dateien an einem bestimmten Ort zu suchen.

Gibt es überhaupt zu konfigurieren, vielleicht ein CompositeViewResolver, der sowohl die Ansichten, * .gson und * .gsps sucht?

Wenn ja, wie kann ich das tun?

Danke!

+0

Wenn Sie aus dem Rest-API-Profil erstellen, ist ein Teil dieser Profildefinition die Eliminierung der meisten UI-Unterstützung - APIs rendern die Benutzeroberfläche normalerweise nicht, sodass das Profil die Dateigröße reduziert. Es kann weniger Arbeit geben, wenn Sie mit einer normalen Web-App beginnen und die JSON-Antworten/.gson-Formatunterstützung für die API-Teile einführen. – railsdog

Antwort

2

Ich habe es geschafft, dieses Problem zu lösen, indem sie dieses Plugin Hinzufügen zu build.gradle:,

compile 'org.grails:grails-plugin-gsp' 

und mit beiden

profile 'org.grails.profiles:web' 
profile 'org.grails.profiles:rest-api' 

und anwenden Plugins

apply plugin: 'org.grails.grails-web' 
apply plugin: 'org.grails.grails-gsp' 
apply plugin: 'org.grails.plugins.views-json' 

Anscheinend Sie entfernen es, wenn Sie das REST-Profil verwenden, um den Overhead zu reduzieren, da Sie HTML selten im REST-Dienst si darstellen de.

+1

Danke, sehr nützlich, aber da GRAILS 3.3 nicht genug ist, musst du auch org.grails.plugins: gsp: 3.3.0.RC1 "' in deiner build.gradle-Datei anstelle von __org.grails: grails- plugin-gsp__-Abhängigkeit, wie es in [Offizielle GRAILS-Dokumentation] (https://gsp.grails.org/latest/guide/index.html#tagsAsMethodCalls) steht. –