玩!框架.模板"包括"

soc*_*ket 8 java scala web-development-server web playframework-2.0

我正在计划我的网站结构如下:

  • header.scala.html
  • XXX
  • footer.scala.html

现在,而不是"xxx"应该有一个特定的页面(即"UsersView.scala.html").
我需要的是将页脚的来源和标题包含在(如知名语言)中间页面的代码中.

所以我的问题是:

  1. 如何使用scala模板将页面包含在另一个页面中?
  2. 你认为这是Play的好范例吗?基于框架的网站?

小智 32

只需像方法一样调用另一个模板.如果你想包括footer.scala.html:

@footer()


Bri*_*ith 14

常见的模式是创建包含样板的模板,并采用HTML类型的参数.让我们说:

main.scala.html

@(content: HTML)

@header
// boilerplate

@content

// more boilerplate
@footer
Run Code Online (Sandbox Code Playgroud)

实际上,您并不需要使用此方法来分隔页眉和页脚.

您的UsersView.scala.html然后如下所示:

@main {

// all your users page html here.

}
Run Code Online (Sandbox Code Playgroud)

您通过将其作为参数传入包装UsersView.

您可以在示例中看到此示例

我通常的主要模板更多涉及,看起来大致如下:

@(title: String)(headInsert: Html = Html.empty)(content: Html)(implicit user: Option[User] = None)
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <title>@title</title>
  // bootstrap stuff here
  @headInsert
</head>
<body>
  @menu(user)
  <div id="mainContainer" class="container">  
    @content
  </div>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这样,模板可以传入头部插入和标题,并使用户可用,当然还有内容.

  • 上帝保佑你老兄 (4认同)