Câu trả lời được chấp nhận là đúng, nhưng nó không bao gồm các trường hợp điều khiển nằm trong một tiểu gói, ví dụ: controllers.applications.MyFavouriteApplication.show()
Kể từ khi tôi đã có một thời gian khó khăn để tìm câu trả lời, tôi sẽ đăng nó đây.
Để đưa một liên kết không đặt phạm vi thành một mẫu, mô hình thích hợp là @controllers.{sub-packages if any}.routes.{your class}.{your method}()
Vì vậy, trong trường hợp này nó sẽ là @controllers.applications.routes.MyFavouriteApplication.show()
NẾU bạn đang sử dụng các mô hình khuyến khích chơi của việc sử dụng @Inject
để tạo singleton đối tượng điều khiển, và NẾU bạn nghĩ câu trả lời đúng là @controllers.applications.MyFavouriteApplication.show()
, bạn sẽ nhận được một lỗi như thế này:
Object MyFavouriteApplication is not a member of controllers.applications. Note: class MyFavouriteApplication exists, but it has no companion object.
Vì bạn đã cung cấp chú thích @Inject()
@Singleton
, điều này có vẻ như là một lỗi rất lạ. Nó có thể làm cho bạn đặt câu hỏi nếu bạn đang xây dựng dự án một cách chính xác. Xác định nguyên nhân thực sự có thể khiến bạn đáng kể trong máu và kho báu.
Nguồn
2017-11-27 23:47:15
nếu Bộ điều khiển của tôi nằm trong các gói phụ? giả sử nó nằm trong 'com.mycompany.myproduct.controllers.LoginController.index()' – Zennichimaro