2010-04-04 15 views
1

我将用户可编辑的文章存储在数据库中。用户可以在文章中插入一些简单的小部件(图形等)。到目前为止,我已经通过让用户插入像[graph-1]之类的图形并且执行字符串搜索和替换来实现这个概念。有没有一种从db中加载的字符串调用Grails模板的有效方法?

我想知道是否有更有效的方式从字符串调用模板?可能涉及Sitemesh?

回答

5

下面是一个代码示例,需要一个模板,并结合地图与变量,它呈现为一个字符串:

import groovy.text.SimpleTemplateEngine 

def engine = new SimpleTemplateEngine() 
String templateContent = 'hello ${name}' 
def binding = [name: 'world'] 

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

你只需要一个字符串来代替硬编码“templateContent”数据库并用任何数据对该模板有意义来填充绑定映射。

+0

Burt's说得没错,唯一需要补充的是你可能想要转义或过滤你显示的任何内容,以防止使用类似myString.encodeAsHTML()的脚本注入攻击。 – 2010-04-04 16:17:57

+0

啊,这很聪明!由于这种情况下的用户是非常值得信赖的,所以注入式攻击不是什么大问题。 – Kimble 2010-04-04 17:36:01

相关问题