2013-08-07 11 views
5

Próbuję rozwiązać możliwie prosty problem, w moim katalogu "widoków", w typowej konfiguracji środowiska Play, chciałbym pogrupować moje szablony (pliki * .scala.html) w grupy, ewentualnie przy użyciu innego folderu dla każdej grupy, np. Chciałbym mieć folderu klienci z następujących plików w nim:Grupowanie odsłon Play 2.0 w pakietach/folderach

  • createForm.scala.html
  • editForm.scala.html
  • list.scala.html

Jak na razie dobrze, ale przy próbie dostępu do tego odniesienie widok z mojego kontroler (np. Ok(views.html.list(..)) ->Ok(views.customers.html.list(...)), pojawia się błąd:

object customers is not a member of package views 

Czy istnieje jakaś najlepsza praktyka/recepta na pracę z wieloma widokami, jak gromadzić je w grupach, a następnie jak korzystać z nich w innych widokach lub kontrolerach.

Thx z góry.

Odpowiedz

7

Sposób silnik szablon działa to, że szablon zdefiniowany jako:

/views/application/index.scala.html 

zostanie przekształcony w klasie:

views.html.application.index 

Więc w zasadzie views.html jest zawsze jako przedrostek. Cf. Play template documentation.

W twoim przypadku oznacza, że ​​powinna ona być

Ok(views.html.customers.list(...)) 
3

Jeśli masz przyjrzeć katalogu target, zobaczysz jak widoki są kompilowane i opakowania są wykonane:

Ok(views.html.group.view()) 

Możesz również zaimportować w ten sposób:

@import views.html.group._ 
//... 
Ok(view()) 
+0

thx, przyjęty gourlaysama, tak jak był pierwszy, w każdym razie za wskazówka importu – Kris

Powiązane problemy