Playframework 有没有可能在游戏中使用基于组件的方法?

Playframework 有没有可能在游戏中使用基于组件的方法?,playframework,playframework-2.0,playframework-2.2,Playframework,Playframework 2.0,Playframework 2.2,我即将开始用Play实施我的第一个项目它基本上是一个渲染引擎,连接到CMS后端/服务。它从CMS后端检索页面对象(作为Json)。此页面对象将包含组件。Play应用程序必须迭代这些组件,并为每个组件调用相应的控制器,并将其结果包含在最终页面中在新的Play应用程序中,每个组件都应该由一个单独的控制器表示。在Spring MVC这样的框架中,我可以使用jsp:include标记将控制器的结果包含到页面中。游戏有相似之处吗?我还没有找到任何东西 谢谢 PS: 我知道所有模板都是函数,可以从其他模板

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

谢谢

PS:

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

    • 你不想调用一个动作(你称之为控制器)——一个动作远不止是产生一些内容的东西,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())
      

      您可以直接调用控制器方法,而不是重定向到它们。这实际上应该与重定向相同,但是没有额外HTTP请求的开销(即使它们只是本地请求)。您使用的是Java还是Scala?看起来您正在使用Java。如果是这样,并且您的控制器方法是静态的,只需执行
      comp1=Component1Controller.getComp1(…);comp2=Component2Controller.getComp2(…)您需要传递的唯一参数与GET/POST请求中需要传递的参数相同。我来自Java,但我将使用Scala。当然,我可以获得所需控制器的引用,并调用它们各自的操作以获得结果。但我知道我该如何处理这些结果?如何访问一个组件的结果HTML以将其包含在结果页面中?我不知道它在Scala中是如何实现的。在Java中,每个控制器方法都返回Result类型的实体。然后,您可以在每个结果实体上调用.toString(),将它们连接起来,并将结果字符串放入ok(resultingString)方法中,该方法将输出新的结果。这一要求:“在新的播放应用程序中,此组件中的每一个都应由单独的控制器表示。”这是为什么?在游戏中,控制器(或者更确切地说,动作)是接受请求头,异步使用请求体,然后生成包含响应头和异步生成响应体的结果的东西。除此之外,听起来您只想调用一个同步生成字符串的函数,您可以将该字符串包含在响应中。听起来你根本不想调用一个动作。