我怎么能叫Play!没有渲染()的框架模板?

Posted

技术标签:

【中文标题】我怎么能叫Play!没有渲染()的框架模板?【英文标题】:How can I call a Play! Framework template without render()? 【发布时间】:2012-06-20 07:22:00 【问题描述】:

我的 Play Framework 应用程序的 app/views/Application/movie.json 下有一个 JSON 模板。

通常您使用 render() 来访问此模板,但这需要向服务器发出请求。如何在不执行其他请求的情况下使用此模板服务器端并获取 JSON 输出?有JsonArray movies = Templates.render("movie.json")之类的吗?

【问题讨论】:

顺便说一句,你想用这个模板得到什么?只是格式化的 JSON 对象? 获取 JSON 作为 String 或 JsonElement 并不重要。两者都可以工作 好吧,一般来说,我更喜欢使用 Java JSON 序列化程序而不是手动“模板内”JSON 渲染——只是考虑使用 ie 是否更好。 flexjsonjackson 或其他类似的库。 【参考方案1】:
Map<String, Object> params = new HashMap<String, Object>();
// prepare your template arguments
String s = TemplateLoader.load("Application/movie.json").render(params);
// the string s is the rendered output, you can do further processing 
// to convert it into JSON object

【讨论】:

以上是关于我怎么能叫Play!没有渲染()的框架模板?的主要内容,如果未能解决你的问题,请参考以下文章

play 1.2.5 包含控制器渲染结果

在 Play Framework 1.2.x 中,如何在路径表达式中使用渲染参数值?

FreeMarker获取单个模板文件并渲染,工具类

5款Node.js模板渲染框架

八 Django框架,模板语言

SoundPool play() 块渲染