Java Playframework-如何在应用程序/视图下创建子包?

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 尝试通过从控制器类访问模板

我正在使用Play2.4(Java版本),但我也对>2.4的解决方案感兴趣。这是我的问题。我想在app/views下构建模板文件夹的内容。所以我想在app/views下创建一些子包,但会出现编译错误。以下是我迄今为止所做的尝试:

  • 通过eclipse创建新的子包

    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.mediaViewers.html.standardViewer.render()文件

    必须是:


    views.html.mediawiewers.standardViewer.render()

    为了从控制器调用视图模板,您应该始终在视图名称的前面加上“views.html”,因此对standardViewer.scala.html的调用应该是:

    views.html.mediaViewers.standardViewer
    
    如果查看在target/scala-/twirl下生成的文件,您可以验证这一点,如下图所示: