在视图中显示函数的值(Play Framework 2)

时间:2012-12-01 08:47:02

标签: playframework-2.0

我刚刚开始搞乱 Play 2 。我最近学会了如何创建模型(User)以及如何在视图中显示它(如果有任何不良做法,请告诉我):

模型/ User.scala:

package models

case class User(id: Long, name: String)

object User {
  var user = User(
    id = 1L,
    name = "Mark"
  )

  def greeting = TODO

}

控制器/ Application.scala:

package controllers

import play.api._
import play.api.mvc._
import models.User

object Application extends Controller {

  def index = Action {
    Ok(views.html.index("Your new application is ready."))
  }

  def hello =  Action {
    Ok(views.html.hello(User.user))
  }

}

hello.scala.html:

@(user: User)

@main("Welcome to Play 2.0") {

  <h2>@user.id</h2>
  <h3>@user.name</h3>

}

现在,我想在视图中显示一个函数的输出。

如何做到这一点?

1 个答案:

答案 0 :(得分:1)

让我们使用另一个视图(tag),你可能知道它也只是一个Scala函数:

/app/views/tags/userName.scala.html

@(user: User)
My Name is @user.name

因此,您可以在userName视图

中使用index功能
@(user: User)

@main("Welcome to Play 2.0") {

    <h2>@user.id</h2>
    <h3>User @user.name said: @tags.userName(user)</h3>

}

事实上,您也可以使用模型和控制器中的功能,只需将其指定为:

@SomeController.someFunction(user)
@SomeModel.someFunction(user)

如果您的课程没有放在controllersmodels个包中(默认情况下导入到视图中),您只需要使用完整的合格路径:

@utils.MyDateFormaters.formatDay(user.birthDay)