6

W playframework 1.x tam kiedyś jakieś wiązane rozszerzenia Java dla silnika szablonów: http://www.playframework.org/documentation/1.2.3/javaextensionsJak wdrożyć pluralize i inne rozszerzenia używając Playframework 2.0

szukam tej samej funkcjonalności w playframework 2.0. Na przykład jak to zrobić?

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

Robię to malually teraz:

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

moszczu być czystsze bardziej wielokrotnego użytku sposób to zrobić?

Odpowiedz

10

Możesz użyć wzoru Scala pimp my lib, aby zaimplementować coś równoważnego Play 1.x Java extensions.

Na przykład, metoda pluralize na kolekcji mogą być realizowane w następujący sposób:

// 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) 
} 

można następnie używać go w sposób następujący:

@import views.pimps._ 

We have @colours.size [email protected] 
+0

Jest to możliwe w Java? –

+0

Pimps muszą być napisane w Scali, ale mogą być używane w szablonach wywoływanych przez kontrolery Java. –

+0

o rację! Miły! Dzięki :) –

Powiązane problemy