template-engine - 为什么 Playframework 2 使用自定义的 Scala 模板引擎而不是以 xml 模式构建的 scalas?

标签 template-engine playframework-2.0 design-decisions

Play 2.0 使用基于自定义 scala 的模板引擎,允许在 html 代码中使用 scala 的子集。

为什么做出这个设计决定而不是使用 scalas 内置 xml 模式?

Play 模板引擎有一些缺点,例如

  • 仅支持 scala 的一个子集,例如似乎不可能在函数内部定义函数
  • Eclipse 中不支持编辑器

另一方面,我知道 play scala 模板引擎支持非格式良好的 html,这在 scalas xml 模式下是不可能的,但我想应该总是可以以格式良好的方式编写模板方式。我只是 play 和 scala 的初学者,只想了解上下文。

最佳答案

我认为它有几个答案:

  1. 这是一个模板。模板不应包含复杂的逻辑。所有逻辑操作都必须在 Controller /模型中完成。

  2. 模板可以采用您想要的任何格式:电子邮件、CSV、SQL 等。将模板限制为有效的 XML 实际上限制了框架的可能性。

  3. 一切都是可编译的。甚至路由、 Assets 、模板继承等。为了使这些机制与框架的其余部分一起工作,可能必须做出一些选择。但没有人能比框架的创建者更好地回答你。

关于template-engine - 为什么 Playframework 2 使用自定义的 Scala 模板引擎而不是以 xml 模式构建的 scalas?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10852550/

相关文章:

template-engine - 在dust.js中,什么是流接口(interface)?

scala - 如何将变量从 Play Framework 中拦截的请求传递给 Action?

java - 如何指定单个测试由 play framework 的 "test-only"命令运行

c# - 什么时候不应该在 .Net 中使用 ThreadPool?

node.js - 支持布局和部分的 Node 表达模板引擎

python - Flask 模板的 {% block page_content %} - 文档

java - 设计决策 - Math.java 中单独的 RandomNumberGenerator Holder 类的用途/优势是什么?

表示决策表的算法

php - PHP + JS的模板引擎但是

java - Play Framework 2.x 无法识别新创建的 scala.html View