私はscalaでPlay2.0を学ぼうとしていますが、Play2.0のテンプレートシステムがどのように機能するかを完全には理解していないと思います。以前にplay1.2を使用したことがあり、#{include'views /blah.html'/}に相当するものを探しています。基本的に、すべてのページにレンダリングされるナビゲーションバーを作成したいと思います。
基本的にmain.scala.htmlにあります
@(title: String)(navbar: Html)(content: Html)
<!DOCTYPE html>
<html>
<head>
<title>@title</title>
<link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">
<link rel="shortcut icon" type="image/png" href="@routes.Assets.at("images/favicon.png")">
<script src="@routes.Assets.at("javascripts/jquery-1.7.1.min.js")" type="text/javascript"></script>
</head>
<header>
This is my header
</header>
<section class="navbar">@navbar</section>
<section class="content">@content</section>
<footer>
This is my footer
</footer>
そして私のindex.scala.htmlで:
@navbar = {
<h1>Index</h1>
<ul>
<li>
<a href=@routes.Application.tasks>Tasks</a>
</li>
</ul>
}
@main("Home")(navbar){
content
}
task.scala.html:
@(tasks: List[Task], taskForm: Form[String])
@import helper._
@main("Home") {
<h1>Index</h1>
<ul>
<li>
<a href=@routes.Application.tasks>Tasks</a>
</li>
</ul>
} {
task code
}
このナビゲーションバーを含めるには、この方法ですべてのページでこれを繰り返す必要があるようです。このナビゲーションバーをすべてのページにハードコーディングする必要があります。すべてのページにナビゲーションバー全体を書かずにこれを行う方法はありますか?
また、以下を含むnavbar.scala.htmlファイルを作成してみました
<h1>Index</h1>
<ul>
<li>
<a href=@routes.Application.tasks>Tasks</a>
</li>
</ul>
ビューの下に保存し、それを使用してインポートし@import views.navbar
ますが、「ナビゲーションバーはビューのメンバーではありません」というエラーが表示されます。それが助けになるなら、私はこれをEclipse JavaEEIDEインディゴで書いています。