La respuesta aceptada es correcta, pero no cubre el caso en el que el controlador está en un sub-paquete, es decir: controllers.applications.MyFavouriteApplication.show()
Ya que tenía un tiempo difícil encontrar la respuesta, voy a publicar aquí.
poner un enlace no restringidos en una plantilla, el patrón adecuado es @controllers.{sub-packages if any}.routes.{your class}.{your method}()
Así que en este caso sería @controllers.applications.routes.MyFavouriteApplication.show()
si estuviera usando el patrón recomendado Juego de utilizar @Inject
para crear Singleton objetos del controlador, y si usted pensó que la respuesta correcta era @controllers.applications.MyFavouriteApplication.show()
, se llega a un error como este:
Object MyFavouriteApplication is not a member of controllers.applications. Note: class MyFavouriteApplication exists, but it has no companion object.
Dado que ya ha proporcionado la anotación @Inject()
@Singleton
, esto parecería un error muy extraño. Puede hacer que te preguntes si estabas construyendo el proyecto correctamente. Determinar la verdadera causa podría costarle mucho en sangre y tesoros.
¿Qué pasa si mi controlador está en paquetes secundarios? digamos que está en 'com.mycompany.myproduct.controllers.LoginController.index()' – Zennichimaro