Play Framework是否支持“片段”?

如果我想在多个页面上有一个共同的UI,例如菜单,建议的方法是什么? 它将包含模板代码和后端控制器(类似于LiftWeb框架中的“片段”)。 我知道Play有一个菜单模块,但我对如何实现这一目标更感兴趣。     
已邀请:
有两种方法可以将常见的视图代码包含在Play框架中。 您可以使用
#{include}
标签或
#{extends}
标签。 顾名思义,extends标签从父视图扩展而来。在创建新应用程序时,默认情况下会在Play设置的框架代码中使用extends标记。它扩展了main.html。你在这里添加你的代码。 includes标签允许您在指定点将一段公共视图代码注入模板。这与php include / require或jsp包含的工作大致相同。 当模板代码也需要模型中的数据或逻辑(通过控制器)时,问题就出现了。如果是这种情况,那么您需要在控制器中使用@Before或@With表示法来确保每次都执行通用的控制器代码。您可以将任何数据添加到renderArgs列表中,以便可以在视图中使用它。 使用renderArgs的一个简单示例是。
@Before
private static void commonData() {
    // do your logic here
    renderArgs.put("menu", menu);
    renderArgs.put("selected", selectedMenuItem);
}
您放入renderArgs(菜单并在示例中选中)的值将与将它们传递到render方法中的方式相同。     

要回复问题请先登录注册