【问题标题】:Play Framework runtime generation of templatesPlay Framework 运行时生成模板
【发布时间】:2012-04-07 14:21:05
【问题描述】:
使用 Play 框架让管理员用户创建和编辑模板然后渲染模板是多么容易。
所以本质上类似于 CMS 的功能。
我是 Play Framework 的新手,并且正在评估它以用于个人项目。
编辑
另一种方法是使用 CKEditor 之类的编辑器,然后将其中的 html 保存在数据库中,并通过 CSS 提供一些重新皮肤,但更希望允许了解更多的用户也可以编辑模板。
【问题讨论】:
标签:
java
content-management-system
playframework
【解决方案1】:
这个问题的答案取决于您是否需要可编辑页面中的动态内容。
如果您不这样做,那么只需保存 HTML 文本。如果你这样做了,而且它真的很有限(比如替换名称字段),那么你可以简单地对 HTML 文本进行简单的字符串替换。
如果您决定想要动态编辑 Play 模板的全部荣耀(并且可以考虑安全性),那么您可以编译模板。请注意,这是在 Play 1.2.x 中完成的 - 尽管在 Play 2.x 中无疑是类似的。确保缓存模板,因为它们的编译成本很高(查看 TemplateLoader.load(VirtualFile file) 以了解如何缓存和更新的想法)
String name = "mytemplate";
String source = "hi ${name}";
Template template = new GroovyTemplateCompiler().compile(new GroovyTemplate(name, source)));
Map<String,Object> args = new HashMap<String,Object>();
args.put("name","mom");
String renderedHtml = template.render(args);