Playframework 有没有可能在游戏中使用基于组件的方法?
我即将开始用Play实施我的第一个项目它基本上是一个渲染引擎,连接到CMS后端/服务。它从CMS后端检索页面对象(作为Json)。此页面对象将包含组件。Play应用程序必须迭代这些组件,并为每个组件调用相应的控制器,并将其结果包含在最终页面中在新的Play应用程序中,每个组件都应该由一个单独的控制器表示。在Spring MVC这样的框架中,我可以使用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: 我知道所有模板都是函数,可以从其他模板
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)方法中,该方法将输出新的结果。这一要求:“在新的播放应用程序中,此组件中的每一个都应由单独的控制器表示。”这是为什么?在游戏中,控制器(或者更确切地说,动作)是接受请求头,异步使用请求体,然后生成包含响应头和异步生成响应体的结果的东西。除此之外,听起来您只想调用一个同步生成字符串的函数,您可以将该字符串包含在响应中。听起来你根本不想调用一个动作。