2013-08-07 8 views
5

Sto cercando di risolvere un problema forse semplice, nella mia directory 'views', nella tipica configurazione di Play Framework, vorrei raggruppare i miei modelli (file * .scala.html) gruppi, possibilmente utilizzando un'altra cartella per ogni gruppo, ad es. Mi piacerebbe avere la cartella ai clienti i seguenti file in essa contenuti:Raggruppamento Riproduzione di viste 2.0 in pacchetti/cartelle

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

Fin qui tutto bene, ma quando provo ad accedere a tale riferimento vista dalla mia controller (ad esempio Ok(views.html.list(..)) ->Ok(views.customers.html.list(...)), viene visualizzato un messaggio di errore:

object customers is not a member of package views 

Esiste qualche pratica migliore/ricetta su come lavorare con più viste, come raccoglierle in gruppi e come usarle in altre viste o controller.

Thx in anticipo.

risposta

7

Il modo in cui il motore di template funziona è che un modello definito come:

/views/application/index.scala.html 

sarà trasformata in una classe:

views.html.application.index 

Quindi, in pratica views.html è sempre tenuto come un prefisso. Cf. il Play template documentation.

Nel tuo caso questo significa che dovrebbe essere

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

Se si dispone di uno sguardo più da vicino la directory target, si vedrà come le viste sono compilati e le confezioni sono realizzate:

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

Puoi anche importare in questo modo:

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

thx, accettato gourlaysama come era prima, comunque grazie per il suggerimento di importazione – Kris