6

En 1.x playframework solía haber algunas extensiones java paquetes para el motor de plantillas: http://www.playframework.org/documentation/1.2.3/javaextensionsCómo implementar pluralizar y otras extensiones utilizando Playframework 2.0

Busco la misma funcionalidad en playframework 2.0. Por ejemplo, ¿cómo haría esto?

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

estoy haciendo esto ahora malually:

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

la debe haber una manera más limpia más reutilizables para hacer esto?

Respuesta

10

Puede aprovechar el patrón pimp my lib Scala para implementar algo equivalente a Play 1.x Java extensions.

Por ejemplo, el método de recogida pluralize se puede implementar de la siguiente manera:

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

A continuación, puede utilizar la siguiente manera:

@import views.pimps._ 

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

Es esto posible en Java? –

+0

Los pimp deben escribirse en Scala pero se pueden usar en plantillas llamadas por los controladores de Java. –

+0

¡oh, claro! ¡Bonito! Gracias :) –

Cuestiones relacionadas