如何将控制器中的GSP模板引擎与Grails中的域连接起来?

如何将控制器中的GSP模板引擎与Grails中的域连接起来?,grails,controller,template-engine,Grails,Controller,Template Engine,我没有在控制器中使用GSP模板引擎来生成视图。现在我想在控制器中的html中访问我的数据库,但我没有找到好的方法。我想访问我的域名中的列名和模板 我需要这样做,我知道我可以用gsp文件做同样的事情 控制器: class SendEmailController { def groovyPagesTemplateEngine def emailTemplate = { def templateText = '''\ <html> <body

我没有在控制器中使用GSP模板引擎来生成视图。现在我想在控制器中的html中访问我的数据库,但我没有找到好的方法。我想访问我的域名中的列名和模板

我需要这样做,我知道我可以用gsp文件做同样的事情

控制器:

class SendEmailController {
def groovyPagesTemplateEngine

def emailTemplate = {   
    def templateText = '''\

    <html>
        <body>
            <h1 align="center">Hello</h1>
                <p align="center">This is my text</p>
        </body>
    </html>
            '''
    def output = new StringWriter() 
    groovyPagesTemplateEngine.createTemplate(templateText, 'sample').make([show: true]).writeTo(output)
    render output.toString()
}   
}

您可以通过调用get passing从域对象类上的数据库中检索记录的id来检索控制器中的域对象

def emailTemplate = SendEmail.get(id).template

还有其他一些检索方法。查看GORM文档了解更多信息:。

所以您非常想用createTemplateSendEmail.get0.template、SendEmail.get0.name替换位createTemplatetemplateText“sample”,对吗?还是要存储渲染结果?或者您想包括sendmail.template的内容并将其作为控制器中定义的整体模板的一部分呈现?我想包括sendmail.name和sendmail.template的内容并呈现其他我好奇的问题,如果我替换了,您会告诉我,如何将存储在域中的数据包含在模板中?在我看来,您只需向模板中添加类似${show}的内容,或者如果您在say sendmail下传入sendmail实例,则添加${sendmail.Template}。当模板本身也需要处理时,它会变得更复杂。对不起,我对grails真的很陌生。。。我必须将此设置用于访问我的数据:def templateText='\Hello${sendmail.name}

${sendmail.template}

'def output=new StringWriter groovyPagesTemplateEngine.createtemplatesendmail.get0.template,sendmail.get0.name.make[show:true].writeTooutput渲染输出.toString
def emailTemplate = SendEmail.get(id).template