是否可以在Play中使用基于组件的方法?

时间:2014-01-03 16:27:38

标签: playframework playframework-2.0 playframework-2.2

我即将开始用Play实现我的第一个项目。 它基本上是一个渲染引擎,它连接到CMS后端/服务。它从CMS后端(作为Json)检索页面对象。此页面对象将包含组件。 Play App必须遍历这些组件并为每个组件调用相应的控制器,并将其结果包含在最终页面中。 每个组件都应该由新的Play应用程序中的单独控制器表示。在像Spring MVC这样的框架中,我可以使用jsp:include标签将控制器的结果包含在页。 Play有类似的东西吗?我还没找到任何东西。

THX!

PS:

  • 我知道所有模板都是函数,您可以从其他模板调用。但是这样,我必须确保,我有正确的参数可用。但我基本上希望将请求转发给控制器并将其结果包含在我的页面中。

1 个答案:

答案 0 :(得分:0)

你不想调用一个动作(你称之为控制器) - 动作不仅仅是产生一些内容的东西,是你不想做的动作的99%。

构建您的代码,以便您的操作和组成这些操作的模板都委托给同一个人,例如:

// Foo.java
public class Foo {
  public static String getBar() {
    ...
  }
}

// FooController.java
public class FooController extends Controller {
  public static Result bar() {
    return ok(Foo.getBar());
  }
}

// finalPage.scala.html
@()

@Html(Foo.getBar())