grails自定义内容模板

需求是这样:

系统预定义一些标签,例如${current_date},输出yyyy-MM-dd,${current_time}输出HH:mm:ss。

domain类有一个字段,是允许用户自定义内容模板,并插入该标签。


方法:

使用GFreeMarker:http://groovy.codehaus.org/GFreeMarker

例子

def index() {
        def tpl = '''
Hello, ${user.name},this is a test ${user.name}, ${user.current_datetime}'''
        def engine = new FreeMarkerTemplateEngine("plugins")
        def binding = ["user": ["name": "cedric", 'current_datetime':current_date()]]
        StringWriter writer = new StringWriter();
        Template template = engine.createTemplate(tpl)
       template.make(binding).writeTo(writer)
        println(writer)
    }
    def current_date() {
        return new SimpleDateFormat('yyyy-MM-dd').format(new Date())
    }


你可能感兴趣的:(Engine,grails)