2013-04-17 34 views
5

Tôi là người mới sử dụng Java và tôi đang sử dụng khung chơi 2.0 dành cho dự án và đã tự hỏi cách sử dụng chức năng định tuyến ngược. Chúng tôi đã điều sau đây:play framework 2.0 định tuyến ngược

Ở routes nộp

GET/    controllers.Application.index() 
GET /myapp/storage controllers.myapp.AnotherController.index() 

Vì vậy, để sử dụng định tuyến ngược lại:

controllers.routes.ref.Application.index() 

nhưng những gì về AnotherController?

Nếu tôi sử dụng controllers.routes.ref.AnotherController.index() trong thử nghiệm, khung chơi sẽ phát ra lỗi "không thể tìm thấy biểu tượng".

Cảm ơn.

+0

Tại sao không chỉ đặt AnotherController.java của bạn trong gói app.controllers? –

+0

Tôi đã hy vọng nhóm các bộ điều khiển thành các gói riêng lẻ. Khi thực hiện yêu cầu GET với định tuyến được xác định "GET/test controllers.myapp.AnotherController.index()" khung chơi đã giải quyết nó mà không có vấn đề gì. Vì vậy, tôi đã hy vọng định tuyến ngược lại cũng sẽ làm việc với thiết lập này. – user2288625

+0

Và bạn đã thử 'ontrollers.routes.ref.myapp.AnotherController.index()'? –

Trả lời

11

Thử giảm phần tử ref. Tôi sử dụng cấu trúc sau đây cho các tuyến đường ngược trong ứng dụng play-2.0.4 của tôi:

<full-package-name>.routes.<controller>.<action> 

Vì vậy, con đường ngược lại để hành động thứ hai của bạn sẽ như vậy là:

controllers.myapp.routes.AnotherController.index() 

Cho rằng hành động của bạn sẽ không có thông số , Tôi đoán bạn cũng có thể bỏ dấu ngoặc vuông:

controllers.myapp.routes.AnotherController.index 
+0

Cảm ơn avik .. Làm việc hoàn hảo !! – user2288625

+0

Cảm ơn Avik, Nó đã hoạt động ... :) –

1

Bằng cách này, tôi đã làm việc cho tôi. Tôi không biết lý do tại sao:

activator clean 
activator run 
Các vấn đề liên quan