6

在playframework 1.x中曾经有对模板引擎的一些捆绑的Java扩展来实现复数化和其他扩展: http://www.playframework.org/documentation/1.2.3/javaextensions如何使用Playframework 2.0

我在playframework 2.0找相同的功能。例如,我会如何做到这一点?

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

我malually现在这样做:

We have @colours.size [email protected](colours.size > 0){s} 

的必须要做到这一点更清洁更可重复使用的方式?

回答

10

您可以利用pimp my lib斯卡拉模式实施相当于Play 1.x Java extensions的东西。

// 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 [email protected] 
+0

这是可能在Java中

例如,在收集pluralize方法可以如下实施? – 2012-06-14 15:09:30

+0

皮条客必须使用Scala编写,但可以在Java控制器调用的模板中使用。 – 2012-06-14 18:59:10

+0

哦对!太好了!谢谢:) – 2012-06-15 03:28:07