0

Play2をいじり始めたところです。最近、モデルの作成方法(User)と、それをビューに表示する方法を学びました(悪い習慣がある場合はお知らせください)。

models / User.scala:

package models

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

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

  def greeting = TODO

}

controllers / 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>

}

ここで、関数の出力をビューに表示したいと思います。

それを達成する方法は?

4

1 に答える 1

1

別のビュー(タグ)を使用してみましょう。これもおそらくご存知のとおり、単なる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)

また、クラスがパッケージ(デフォルトではビューにインポートされる)に配置されていない場合は、controllers完全models修飾パスを使用する必要があります。

@utils.MyDateFormaters.formatDay(user.birthDay)
于 2012-12-01T09:46:39.100 に答える