在子文件夹中找不到视图

Chr*_*don 2 java scala web-applications playframework-2.0

我刚开始使用Play2.0 Framework,我正在尝试在模板中使用主home/index模板.我遇到的问题是它在Shared文件夹中找不到"main",如果我把它取出并放在Views根目录中,那么它工作正常.

所以我想知道怎样才能引用main.scala.htmlindex.scala.html

我的文件夹结构如下:

  • 查看
      • index.scala.html
    • 共享
      • main.scala.html

我的代码index.scala.html是:

@head = {

}

@content = {
    <b>Home Screen</b>!!
}

ERROR: @main(title = "Home",head, content)
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

not found: value main.
Run Code Online (Sandbox Code Playgroud)

bie*_*ior 6

您可以使用:

@Shared.main(title = "Home",head, content)
Run Code Online (Sandbox Code Playgroud)

出于安全性和性能原因,Play将模板编译为Scala函数并将其存储在托管文件夹中/target/scala-2.9.1/src_managed/main/views,以便您可以预览它以找到正确的路径.

对于使用pattern保存的视图文件,规则很容易:

  • /app/views/viewName.scala.ext(ext可以是html,xml或者txt)Play会将视图编译为:view.ext.viewName
  • 因为/app/views/SomeSub/OtherSub/viewName.scala.ext它将是:view.ext.SomeSub.OtherSub.viewName

所以:

/app/views/general.scala.html             = views.html.general
/app/views/Main/index.scala.html          = views.html.Main.index
/app/views/Api/usersList.scala.xml        = views.xml.Api.usersList
/app/views/Email/English/body.scala.txt   = views.txt.Email.English.body
Run Code Online (Sandbox Code Playgroud)

等等...

有些情况下/app/views/tags自动导入到视图中的包,因此您可以在任何视图中使用/app/views/tags/myTag.scala.htmlwith:@tags.myTag(args)syntax.