0

我刚开始玩 Play 2。我最近学习了如何创建模型 ( 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))
  }

}

你好.scala.html:

@(user: User)

@main("Welcome to Play 2.0") {

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

}

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

如何做到这一点?

4

1 回答 1

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)

如果你的类没有放在controllers或者models包中(默认导入到视图中),你只需要使用完整的限定路径:

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