5
play2のどこにでもパラメーターを渡さないようにする方法は?
play1では通常、すべてのデータをアクションで取得し、ビューで直接使用します。ビューでパラメータを明示的に宣言する必要がないため、これは非常に簡単です。 しかし、play2では、requestビューのヘッドですべてのパラメーター(を含む)を宣言する必要があることを発見しました。すべてのデータをアクションで取得してビューに渡すのは非常に退屈です。 たとえば、データベースから読み込まれたメニューをフロントページに表示する必要がある場合は、次のように定義する必要がありますmain.scala.html。 @(title: String, menus: Seq[Menu])(content: Html) <html><head><title>@title</title></head> <body> <div> @for(menu<-menus) { <a href="#">@menu.name</a> } </div> @content </body></html> 次に、それをすべてのサブページで宣言する必要があります。 @(menus: Seq[Menu]) @main("SubPage", menus) { ... } 次に、メニューを取得して、すべてのアクションで表示するためにそれを渡す必要があります。 def index = Action { val menus = Menu.findAll() Ok(views.html.index(menus)) } def index2 = Action { val menus = Menu.findAll() Ok(views.html.index2(menus)) } …