我刚刚开始搞乱 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>
}
现在,我想在视图中显示一个函数的输出。
如何做到这一点?
答案 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)
如果您的课程没有放在controllers
或models
个包中(默认情况下导入到视图中),您只需要使用完整的合格路径:
@utils.MyDateFormaters.formatDay(user.birthDay)