Один из очевидных вариантов - просто переименовать HTML-файлы с foo.html
на _foo.gsp
, а затем использовать <render template="foo">
. Однако это настолько очевидно, что я уверен, что вы уже об этом подумали.
Если вы просто хотите, чтобы визуализировать HTML файл внутри контроллера вы можете использовать параметр метода render
контроллера
def htmlContent = new File('/bar/foo.html').text
render text: htmlContent, contentType:"text/html", encoding:"UTF-8"
text
Если вы хотите сделать то же самое изнутри .gsp , вы можете написать тег. Что-то вроде следующего (непроверенных) должно работать:
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
}
}
Вы можете назвать этот тег из GSP с помощью
<html:render file="/bar/foo.html"/>
Спасибо Дона! Это выглядит так (вторая часть, то есть.). Я дам вам попробовать и обновить результаты. – sector7
Дон - не знаю, увидишь ли ты это, надеюсь. Я пробовал код, который вы разместили, но мне кажется, что я должен указать файл относительно корневого каталога моих компьютеров, например. "C: /grails2.0/..." Как заставить его работать относительно моего каталога webroot, как в настоящее время работает просмотр рендеринга, ищет файлы в соответствующей папке вида? – Ray
@Ray Если вы поместите файлы HTML в веб-приложение, вы сможете получить их с помощью 'g.resource' –