Есть два способа включить общий код представления в Play Framework.
Вы можете использовать тег #{include}
или тег #{extends}
.
Тег extends, как следует из названия, выходит из родительского представления. Тег extends используется по умолчанию в коде скелета, установленном Play при создании нового приложения. Это расширяет main.html. Вы добавляете здесь свой код.
Тег include позволяет вам вводить общий фрагмент кода в ваши шаблоны в указанной точке. Это работает во многом так же, как 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.