2013-06-09 9 views
13

Sto utilizzando Play 2.1 e sto avendo alcuni problemi strani.Percorsi e sottopacchetti nei controller

Ho un sotto-pacchetto messages nel pacchetto controllers con una classe i18n.java.

Il mio file routes simile a questo:

GET  \ controllers.messages.i18n.index() 
POST \ controllers.messages.i18n.process() 

Ora ho un modulo con la seguente azione:

@helper.form(action = routes.messages.i18n.process()) 

ma questo mi dà un errore:

value messages is not a member of object controllers.routes

Ho usato pacchetti secondari in Play 2.0.4 e w orked bene in questo modo, qualcuno può individuare eventuali errori nella mia configurazione?

Il file di rotte non si lamenta di non riuscire a trovare il controller.

risposta

18

Il percorso deve essere controllers.messages.routes.i18n.process(). È possibile ispezionare la directory target/scala-2.10/src_managed per scoprire i file generati.

E per informazioni, le convenzioni di codifica Java dicono che una classe deve iniziare con una maiuscola.

+0

Il nome della classe è stato un copia/incolla/modificare fallire, ma questo funziona! Grazie anche per l'avviso 'src_managed' – Aerus

10

FYI, in 2.2 è leggermente diverso.

routes.conf assomiglia:

GET /admin/stuff controllers.admin.StuffController.show() 

in codice è simile:

controllers.admin.routes.StuffController.show() 
3

for Gioca 2.4.6 gli utenti Java:

Diciamo che il controllore (Application) e azione (logout) è com.stackoverflow.play.Application.logout().

di usarlo nel tuo modello (*.scala.html), si fa @com.stackoverflow.play.routes.Application.logout (ad esempio, <a href="@com.stackoverflow.play.routes.Application.logout()">, <form action="@com.stackoverflow.play.routes.Application.logout()" method="post">).

leggere la parte inferiore di questo link: https://playframework.com/documentation/2.4.x/JavaRouting