【问题标题】:Using HTML Templates at server side在服务器端使用 HTML 模板
【发布时间】:2016-05-20 10:44:48
【问题描述】:

我正在开发以 SCALA 作为后端的游戏框架。 Json 数据由控制器提供给前端。

我想添加 HTML 作为 json 某些字段的值。 此 HTML 将作为模板保存,数据将在运行时添加到此模板中。

我认为我应该在 HTML 模板中添加唯一名称,然后这些名称将被我想在运行时添加的数据替换。最终,这个 HTML 将被添加到 json 响应中。

我的方法对吗?如果没有,在 HTML 模板中添加数据的最佳方法是什么,将此模板添加到 json 响应中并将此组合响应发送到前端以供进一步使用?

使用字符串替换在 HTML 模板中添加数据是一种好习惯吗?

【问题讨论】:

  • 在 JSON 中嵌入 HTML 的用例是什么?如果您想超越简单的字符串替换,您可能需要查看 FreeMarker 等模板引擎。
  • 那么,您是使用 Play 模板作为前端,还是只使用 Play 作为后端而将其他东西用作 UI?
  • @rethab 我的应用程序的前端使用这个 json 在表格中可视化它。在表格的某些列中,我想显示定制的 HTML。这就是我嵌入它的原因。你会建议我在以 scala 作为后端的 playframework 中使用 freemakrer 吗?
  • @AlexanderArendar ,我的是第二种情况。我正在使用 ajax 调用来带来 json 数据并显示在一个嵌入了 HTML 的表格中。我不想在前端进行处理,因此我想从后端发送嵌入的 HTML。我想将 HTML 模板保存在单独的文件中,以便可以轻松修改它,而无需更改后端代码。
  • 只要你能用播放模板做到这一点,你应该坚持使用它们。

标签: html json string scala playframework


【解决方案1】:

我认为只要你使用 Play,你就可以将你的 HTML 模板放入 app/views 包中。假设您将模板称为 mytemplate.scala.html 您可以将此视图参数化为任何播放视图。 在您生成 JSON 响应的代码中,您可以调用 mytemplate(parameters) 来生成 html,Play 将为您完成所有工作。然后使用 play.api.libs.json.JSON 对象的方法和相关工具,您可以将此 html 转换为 JSON。 因此,在您的控制器代码中,您将拥有类似 Ok(JSON.toJson(mytemplate(parameters)))

这当然是一个草图,所以你需要详细说明和尝试。

【讨论】:

  • 好的。这是标准方式吗?因为我必须调用模板的次数与我拥有的文档数量一样多,所以将它们添加到列表中,然后将其发送到前端以显示在表格中。这可能是数百个。
  • 这样的播放视图实际上是一个编译时带参数的函数。因此,如果您调用它数百次,则没有问题。如果您还没有这样做,请查看 Play 文档playframework.com/documentation/2.2.x/ScalaJson 的这一部分。它更多的是关于将模型对象序列化为 JSON,但我仍然认为对您有用。
猜你喜欢
  • 2013-12-30
  • 1970-01-01
  • 1970-01-01
  • 2010-12-19
  • 2012-02-11
  • 2015-06-18
  • 2011-05-11
  • 2012-10-27
  • 2014-04-06
相关资源
最近更新 更多