Java Playframework-如何在应用程序/视图下创建子包?
我正在使用Play2.4(Java版本),但我也对>2.4的解决方案感兴趣。这是我的问题。我想在app/views下构建模板文件夹的内容。所以我想在app/views下创建一些子包,但会出现编译错误。以下是我迄今为止所做的尝试:Java Playframework-如何在应用程序/视图下创建子包?,java,playframework,playframework-2.0,Java,Playframework,Playframework 2.0,我正在使用Play2.4(Java版本),但我也对>2.4的解决方案感兴趣。这是我的问题。我想在app/views下构建模板文件夹的内容。所以我想在app/views下创建一些子包,但会出现编译错误。以下是我迄今为止所做的尝试: 通过eclipse创建新的子包 app/views/mediawiewers 将模板standardViewer.scala.html放入其中 app/views/mediawiewers/standardViewer.scala.html 尝试通过从控制器类访问模板
app/views/mediawiewers
standardViewer.scala.html
放入其中
app/views/mediawiewers/standardViewer.scala.html
views.mediawiewers.html.standardViewer.render()
activator-clean;激活器清理文件;激活器运行
[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]
...
控制器中的包路径错误!使用此模式:
`views.html.your-package-goes-here.your-template-goes-here.render()`
或更具体:
views.html.mediawiewers.standardViewer.render()
为了从控制器调用视图模板,您应该始终在视图名称的前面加上“views.html”,因此对standardViewer.scala.html的调用应该是:
views.html.mediaViewers.standardViewer
如果查看在target/scala-/twirl下生成的文件,您可以验证这一点,如下图所示: