我使用的是 Play 2.4(Java 版),但我也对 >2.4 的解决方案感兴趣。这是我的问题。我想在 app/views 下构建我的模板文件夹的内容。所以我想在 app/views 下创建一些子包,但出现编译错误。这是我到目前为止尝试过的:
通过eclipse创建新的子包
app/views/mediaViewers
在里面放一个模板
standardViewer.scala.html
app/views/mediaViewers/standardViewer.scala.html
尝试通过 Controller 类访问模板
views.mediaViewers.html.standardViewer.render()
重建游戏项目
激活器清理;激活器清理文件;激活器运行
当调用适当的路由时,我得到:
[error] .../Viewers.java:18: package views.mediaViewers.html does not exist
[error] views.mediaViewers.html.standardViewer
[error] ..../Viewers.java:21: package views.mediaViewers.html does not exist
[error] views.mediaViewers.html.standardViewer
[error] .../app/controllers/Viewers.java:24: package views.mediaViewers.html does not exist
...
[error] (compile:compileIncremental) javac returned nonzero exit code
[error] application -
! @765kicfe1 - Internal server error, for (GET) [/] ->
play.sbt.PlayExceptions$CompilationException: Compilation error[package views.mediaViewers.html does not exist]
...
最佳答案
为了从 Controller 调用 View 模板,您应该始终在 View 名称前加上“views.html”前缀,因此对 standardViewer.scala.html 的调用将是:
views.html.mediaViewers.standardViewer
如果您查看 target/scala-/twirl 下生成的文件,您可以验证这一点,如图所示: project structure
关于java - Playframework - 如何在应用程序/ View 下创建子包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47506625/