如果父项目具有相同的名称视图,则Play2.2.1无法调用子播放项目视图

时间:2014-03-23 08:44:49

标签: playframework playframework-2.2

在Play2.2.1中,如果父播放项目具有相同的名称视图,我就无法调用子播放项目视图,如index.scala.html。

如何调用子项目index.scala.html?

我创建示例项目HERE

条件如下

  • 创建具有相同名称视图的嵌套播放项目,如index.scala.html。

    ├── app
    │   ├── controllers ── Application.scala
    │   └── views ── index.scala.html
    ├── conf ── routes
    ├── others
    │   └── sub
    │       ├── app
    │       │   ├── controllers ── Application.scala
    │       │   └── views
    │       │       ├── index.scala.html
    │       │       └── subonly.scala.html
    │       └── conf ── sub.routes
    
  • 将子项目路由添加到父路由中,如-> /sub/ sub.Routes

  • 最后,将相同名称的视图文件(如index.scala.html)创建到父app / views和子项目app / views中。

问题

如果父项目没有子项目视图的同名视图,则调用子项目视图。

如果父项目具有子项目视图的相同名称视图,则在调用子项目视图时,将调用父项目视图。

我想调用同名子项目视图。

示例动作

父路线的索引调用父项目index.scala.html

GET     /      controllers.Application.index
->      /sub/  sub.Routes

子项目路线'索引调用子项目index.scala.html(但称为父项目index.scala.html

GET     /      controllers.subproject.Application.index
GET     /only  controllers.subproject.Application.only
像这样

example image

永远不会显示子项目索引视图页面。

1 个答案:

答案 0 :(得分:1)

我自己就解决了这个问题。

修复子项目视图目录,如下所示。

├── app
├── others
│   └── sub
│       ├── app
│       │   ├── controllers ── Application.scala
│       │   └── views
│       │       └── sub
│       │           ├── index.scala.html
│       │           └── subonly.scala.html

并从控制器中调用它,如

def index = Action {
  Ok(views.html.sub.index())
}

它可以正常工作。