Rendern von HTML-Dateien in Grails

8

Ich habe mich umgesehen, konnte aber keine Möglichkeit finden, * .html-Dateien einfach in Grails einzubinden oder zu rendern. Meine Anwendung benötigt g.render oder <g:render> Vorlagen, die als HTML-Dateien geliefert werden. Dazu müssen wir, wie wir wissen, HTML-Dateien in _foo.gsp -Dateien konvertieren, um gerendert zu werden. Ich bin total überrascht, warum es keine direkte Unterstützung für HTML gibt oder gibt es eine?

Danke!

    
sector7 17.02.2010, 13:59
quelle

6 Antworten

20

Eine offensichtliche Option besteht darin, Ihre HTML-Dateien einfach von foo.html in _foo.gsp umzubenennen und dann <render template="foo"> zu verwenden. Aber das ist so offensichtlich, dass ich mir sicher bin, dass du schon darüber nachgedacht hast.

Wenn Sie eine HTML-Datei nur innerhalb eines Controllers rendern möchten, können Sie den Parameter text der render Controller-Methode

verwenden %Vor%

Wenn Sie dasselbe in einer .gsp-Datei ausführen möchten, können Sie ein Tag schreiben. So etwas wie das Folgende (ungetestet) sollte funktionieren:

%Vor%

Sie können dieses Tag von einem GSP mit

aufrufen %Vor%     
Dónal 17.02.2010, 14:48
quelle
3

Was wollen Sie erreichen?

  1. Render HTML von einem Controller? In diesem Fall müssen Sie lediglich den Benutzer zu einer Datei von Ihrem Steuerelement umleiten.

    redirect(uri:"/html/my.html")

  2. Verwenden Sie html-Dateien anstelle von gsp template-files? Die Sache ist, Grails ist eine "Convention over Configuration" -Plattform und das bedeutet, dass Sie einige Dinge "den Grails Weg" tun müssen. Die Dateien benötigen die _ und die .gsp , aber der Name kann sein, was auch immer Sie möchten, auch wenn es einfacher ist, wenn Sie den gleichen Namen wie der Controller verwenden. Was Sie daraus gewinnen, ist das Wissen, dass jeder Entwickler, der weiß, was in Ihrem Projekt steckt und was er tut, versteht, wie die Dinge zusammenhängen und Ihnen helfen werden, schnell zu beginnen.

xlson 17.02.2010 15:31
quelle
1

Das Don-Beispiel hat ein wenig korrigiert, funktioniert gut für mich

Importieren Sie org.apache.commons.io.IOUtils

%Vor%     
jozh 01.12.2013 18:51
quelle
1

Ich wollte statische html / ajax-Seiten schreiben, die in der grails-App (v2.4.4) gehostet werden, aber benutze den Controller für das URL-Rewrite. Ich konnte dies erreichen, indem ich die Datei nach web-app / (zur leichteren Bezugnahme) verschiebe und einfach die render () -Methode mit den Parametern 'file' und 'contentType' verwende, wie zum Beispiel:

%Vor%

Hinweis: Ich habe das nur mit run-app versucht, und habe noch keinen Krieg gepackt und auf tomcat bereitgestellt.

Doc: Ссылка

    
Scott Langeberg 01.08.2015 21:24
quelle
0
%Vor%

Es ist relativ zum Web-App-Ordner Ihrer Grails-Hauptanwendung

    
momomo 17.06.2014 08:45
quelle
0

Ich war in der Lage, den Ansatz von @momo zu verwenden, um externe Dateien für das Rendering-Plugin "grails" zuzulassen, wo Netzwerkpfade in höheren Umgebungen verpfuscht werden - meins endete wie folgt:

%Vor%     
Scott Langeberg 24.09.2015 17:22
quelle

Tags und Links