gpt4 book ai didi

java - Play Framework 是否支持 "snippets"?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:42:36 26 4
gpt4 key购买 nike

如果我想在多个页面上使用一个通用的 UI,例如菜单,推荐的方法是什么?

它将包含模板代码和后端 Controller (类似于 LiftWeb 框架中的“片段”)。

我知道 Play 有一个菜单模块,但我更感兴趣的是一般情况下如何实现。

最佳答案

有两种方法可以将通用 View 代码包含到 Play Framework 中。

您可以使用 #{include} 标签或 #{extends} 标签。

extends 标签,顾名思义,从父 View 扩展。当您创建新应用程序时,Play 设置的框架代码中默认使用 extends 标签。它扩展了 main.html。您在此处添加代码。

includes 标签允许您在模板的指定位置注入(inject)一段通用的 View 代码。这与 php include/require 或 jsp include 工作大致相同。

当您的模板代码还需要来自模型的数据或逻辑(通过 Controller )时,问题就会出现。如果是这种情况,那么您将需要在 Controller 中使用@Before 或@With 符号来确保每次都执行通用的 Controller 代码。您可以将任何数据添加到 renderArgs 列表,以便它可以在 View 中使用。

使用 renderArgs 的一个简单示例是。

@Before
private static void commonData() {
// do your logic here
renderArgs.put("menu", menu);
renderArgs.put("selected", selectedMenuItem);
}

您放入 renderArgs 的值(示例中的菜单和选择)将可用,就像您将它们传递到 render 方法一样。

关于java - Play Framework 是否支持 "snippets"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4797752/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com