How to implement pluralize & other extensions using Playframework 2.0

旧时模样 提交于 2019-12-21 04:53:30

问题


In playframework 1.x there used to be some bundled java extensions for the templating engine: http://www.playframework.org/documentation/1.2.3/javaextensions

I'm looking for the same functionality in playframework 2.0. For example how would I do this?

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

I am doing this malually now:

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

the must be a cleaner more reusable way to do this?


回答1:


You can leverage the pimp my lib Scala pattern to implement something equivalent to Play 1.x Java extensions.

For example, the pluralize method on collection can be implemented as follows:

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

You can then use it as follows:

@import views.pimps._

We have @colours.size colour@colours.pluralize


来源:https://stackoverflow.com/questions/9773212/how-to-implement-pluralize-other-extensions-using-playframework-2-0

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!