Eine offensichtliche Möglichkeit besteht darin, einfach Ihre HTML-Dateien von foo.html
zu _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 wollen einfach nur eine HTML-Datei machen, aus einem Controller Sie den text
Parameter des render
Controller-Methode
def htmlContent = new File('/bar/foo.html').text
render text: htmlContent, contentType:"text/html", encoding:"UTF-8"
Wenn Sie innerhalb eines .gsp das Gleiche tun wollen nutzen können Du könntest ein Tag schreiben. So etwas wie die folgende (nicht getestet) funktionieren sollte:
import org.springframework.web.context.request.RequestContextHolder
class HtmlTagLib {
static namespace = 'html'
def render = {attrs ->
def filePath = attrs.file
if (!file) {
throwTagError("'file' attribute must be provided")
}
def htmlContent = new File(filePath).text
out << htmlContent
}
}
Sie rufen können diesen Tag von einem GSP
<html:render file="/bar/foo.html"/>
Danke Don! Das sieht so aus (der zweite Teil also). Ich werde es versuchen und meine Ergebnisse hier aktualisieren. – sector7
Don - weiß nicht, ob du das sehen wirst, hoffe ich. Ich habe den von Ihnen geposteten Code ausprobiert, aber es scheint, als müsste ich eine Datei relativ zu meinem Computer-Root-Verzeichnis angeben, z. "C: /grails2.0/..." Wie mache ich es relativ zu meinem Webroot-Verzeichnis arbeiten, wie die Render-Ansicht derzeit funktioniert, nach Dateien im entsprechenden View-Ordner suchen? – Ray
@Ray Wenn Sie die HTML-Dateien unter Web-App, sollten Sie in der Lage sein, sie mit 'g.resource' –