如何使用Playframework 2.0实现复数和其他扩展

Som*_*tik 6 templates template-engine scala playframework playframework-2.0

在playframework 1.x中,曾经有一些用于模板引擎的捆绑java扩展:http://www.playframework.org/documentation/1.2.3/javaextensions

我在playframework 2.0中寻找相同的功能.例如,我该怎么做?

colour${['red', 'green', 'blue'].pluralize()} 
Run Code Online (Sandbox Code Playgroud)

我现在正在做这件事:

We have @colours.size colour@if(colours.size > 0){s}
Run Code Online (Sandbox Code Playgroud)

这必须是更清洁,更可重复使用的方式吗?

Jul*_*Foy 10

您可以利用pimp my lib Scala模式实现与Play 1.x Java扩展等效的功能.

例如,pluralize关于收集的方法可以如下实现:

// File app/views/pimps.scala
package views

package object pimps {
  class PimpedTraversable[A](col: Traversable[A]) {
    def pluralize = if (col.size == 1) "" else "s"
  }

  implicit def pimpTraversable[A](col: Traversable[A]) = new PimpedTraversable(col)
}
Run Code Online (Sandbox Code Playgroud)

然后您可以按如下方式使用它:

@import views.pimps._

We have @colours.size colour@colours.pluralize
Run Code Online (Sandbox Code Playgroud)