Jedną z oczywistych opcji jest po prostu zmiana nazwy plików HTML z foo.html
na _foo.gsp
, a następnie użycie <render template="foo">
. Jest to jednak tak oczywiste, że jestem pewien, że już o tym pomyślałeś.
Jeśli chcesz po prostu renderować plik HTML z poziomu sterownika można użyć parametru metody render
kontrolera
def htmlContent = new File('/bar/foo.html').text
render text: htmlContent, contentType:"text/html", encoding:"UTF-8"
text
Jeśli chcesz zrobić to samo z poziomu .gsp , możesz napisać znacznik. Coś jak poniżej (untested) powinno działać:
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
}
}
Można nazwać ten tag z GSP użyciu
<html:render file="/bar/foo.html"/>
Dzięki Don! Wygląda na to (druga część tj.). Spróbuję i zaktualizuję wyniki tutaj. – sector7
Don - nie wiem, czy to zobaczysz, mam taką nadzieję. Próbowałem kodu, który opublikowałeś, ale wydaje mi się, że muszę podać plik w stosunku do katalogu głównego moich komputerów, np. "C: /grails2.0/..." Jak sprawić, by działał on w stosunku do mojego katalogu webroot, tak jak obecnie wygląda widok renderowania, szukając plików w odpowiednim folderze widoku? – Ray
@Ray Jeśli umieścisz pliki HTML w aplikacji internetowej, powinieneś być w stanie je odzyskać używając 'g.resource' –