Один очевидный вариант - просто переименовать ваши HTML-файлы с foo.html
на _foo.gsp
и затем использовать <render template="foo">
. Однако это настолько очевидно, что я уверен, что вы уже подумали об этом.
Если вы просто хотите отобразить HTML-файл из контроллера, вы можете использовать параметр text
метода render
контроллера
def htmlContent = new File('/bar/foo.html').text
render text: htmlContent, contentType:"text/html", encoding:"UTF-8"
Если вы хотите сделать то же самое из .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"/>