java - 在子文件夹中找不到 View

标签 java scala web-applications playframework-2.0

我刚开始使用 Play2.0 框架,我正尝试在我的 home/index 模板中使用主模板。我遇到的问题是它在 Shared 文件夹中时找不到“main”,如果我将其取出并放入 Views 根目录中,则它可以正常工作。

所以我想知道如何从 index.scala.html 引用 main.scala.html

我的文件夹结构如下:

  • 观点
    • 首页
      • index.scala.html
    • 共享
      • main.scala.html

我在 index.scala.html 中的代码是:

@head = {

}

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

ERROR: @main(title = "Home",head, content)

我得到的错误是:

not found: value main.

最佳答案

您可以使用:

@Shared.main(title = "Home",head, content)

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

规则很容易查看以模式保存的文件:

  • /app/views/viewName.scala.ext(其中 ext 可以是 htmlxmltxt) Play 会将 View 编译为: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

等...

在某些情况下,/app/views/tags 包会自动导入到 View 中,因此您可以使用 /app/views/tags/myTag.scala.html 只是在任何 View 中使用:@tags.myTag(args) 语法。

关于java - 在子文件夹中找不到 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14590055/

相关文章:

java - 在 Spring boot Rest api 中使用 @embeded 时,在数据库中获取 null 值? java新手帮帮我吧

java - Android 按钮点击放大

java - 为什么带有未初始化成员变量的类在java中可以编译?

Maven 的 Scaladoc 选项

scala - Slick:过滤所有 joda DateTime 日期等于今天的记录

java - 将 java web 应用程序打包为 exe

java - 如何对自定义实体集合进行排序?

javascript - 网站如何区分是通过Web浏览器还是App进入网站?

java - 二元运算符的操作数类型错误 '/' 第一个类型为 String 第二个类型为 int

scala - 如何在 Spark-Scala 中创建具有已定义架构的行?