Una opción obvia es simplemente cambiar el nombre de los archivos HTML de foo.html
a _foo.gsp
y luego usar <render template="foo">
. Sin embargo, esto es tan obvio que estoy seguro de que ya lo has pensado.
Si simplemente desea procesar un archivo HTML desde un controlador puede utilizar el parámetro del método text
render
controlador
def htmlContent = new File('/bar/foo.html').text
render text: htmlContent, contentType:"text/html", encoding:"UTF-8"
Si desea hacer lo mismo desde dentro de un .gsp , podrías escribir una etiqueta. Algo como lo siguiente (no probado) debería funcionar:
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
}
}
Usted puede llamar a esta etiqueta de un SGP usando
<html:render file="/bar/foo.html"/>
Gracias Don! Esto se parece a esto (la segunda parte, es decir). Voy a intentarlo y actualizar mis resultados aquí. – sector7
Don - no sé si verás esto, eso espero. Probé el código que publicaste, pero parece que tengo que especificar un archivo relacionado con el directorio raíz de mi computadora, p. "C: /grails2.0/..." ¿Cómo puedo hacer que funcione en relación con mi directorio webroot, como la vista de renderizado que funciona actualmente, buscando archivos en la carpeta de vista adecuada? – Ray
@Ray Si coloca los archivos HTML en la aplicación web, debería poder recuperarlos utilizando 'g.resource' –