2010-10-11 2 views
0

Я пытался привязать данные к шаблону, созданному с помощью GroovyPagesTemplateEngine, но не могу. Вот что я могу, насколько могу. Может ли кто-нибудь помочь? Благодаря!grails: как привязать данные к GroovyPagesTemplateEngine экземпляру?

import org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine 
import org.springframework.core.io.FileSystemResource 

File myfile = new File("c:\\myTools\\mydata.gsp") 
def engine = new GroovyPagesTemplateEngine() 

def data = ['data':'test']  

def template = engine.createTemplate(new FileSystemResource(myfile)) 

Я попытался template.make (данные), но не работает .....

ответ

1

Попробуйте это:

import groovy.text.SimpleTemplateEngine 

def engine = new SimpleTemplateEngine() 
String templateContent = new File('c:/myTools/mydata.gsp').text 
def binding = [data: 'test'] 

String rendered = engine.createTemplate(templateContent).make(binding).toString() 
+1

Да, это работает. Однако, когда я пытался использовать taglib. Я не могу получить к ним доступ. Я решил использовать GroovyPagesTemplateEngine для решения моей проблемы. Вы знаете, как получить доступ к taglibs с помощью SimpleTemplateEnine? Спасибо!!! – john

0

Это должно работать для вас:

def templateText = """ 
    <h1>Hello $who</h1> 
""" 
def output = new StringWriter() 
groovyPagesTemplateEngine.createTemplate(templateText, 'sample').make([who:'World']).writeTo(output) 
render output.toString() 

Просто включите groovyPagesTemplateEngine через инъекцию зависимостей, так же, как и ссылку на службу.

Смежные вопросы