1
我将用户可编辑的文章存储在数据库中。用户可以在文章中插入一些简单的小部件(图形等)。到目前为止,我已经通过让用户插入像[graph-1]之类的图形并且执行字符串搜索和替换来实现这个概念。有没有一种从db中加载的字符串调用Grails模板的有效方法?
我想知道是否有更有效的方式从字符串调用模板?可能涉及Sitemesh?
我将用户可编辑的文章存储在数据库中。用户可以在文章中插入一些简单的小部件(图形等)。到目前为止,我已经通过让用户插入像[graph-1]之类的图形并且执行字符串搜索和替换来实现这个概念。有没有一种从db中加载的字符串调用Grails模板的有效方法?
我想知道是否有更有效的方式从字符串调用模板?可能涉及Sitemesh?
下面是一个代码示例,需要一个模板,并结合地图与变量,它呈现为一个字符串:
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”数据库并用任何数据对该模板有意义来填充绑定映射。
Burt's说得没错,唯一需要补充的是你可能想要转义或过滤你显示的任何内容,以防止使用类似myString.encodeAsHTML()的脚本注入攻击。 – 2010-04-04 16:17:57
啊,这很聪明!由于这种情况下的用户是非常值得信赖的,所以注入式攻击不是什么大问题。 – Kimble 2010-04-04 17:36:01