Как реализовать множественное и другие расширения с помощью Playframework 2.0 - PullRequest
6 голосов
/ 19 марта 2012

В playframework 1.x раньше были некоторые java-расширения для шаблонного движка: http://www.playframework.org/documentation/1.2.3/javaextensions

Я ищу ту же функциональность в playframework 2.0.Например, как бы я это сделал?

colour${['red', 'green', 'blue'].pluralize()} 

Сейчас я делаю это плохо:

We have @colours.size colour@if(colours.size > 0){s}

должен быть более чистый и многократно используемый способ сделать это?

1 Ответ

10 голосов
/ 20 марта 2012

Вы можете использовать шаблон 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)
}

Затем вы можете использовать его следующим образом:

@import views.pimps._

We have @colours.size colour@colours.pluralize
...