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