Tôi muốn biết làm thế nào có thể retrive một đối tượng route từ một chuỗi trong lớp global.java vì im đang cố gắng tạo một module định tuyến động: tôi không muốn để chỉnh sửa tuyến đường chính của tôi mỗi lần tôi thêm một mô-đun (tiểu dự án) nhưjava play framework 2.1.3 Làm thế nào để retrive một đối tượng route
- mymodule.Routes>/mymodule
vì vậy, để tránh điều này, tôi Tring để tải các tuyến đường mục tiêu phụ thuộc vào các Đường dẫn URI. /module/mymodule
Tôi tryed để viết một số mã như sau bên onRouteRequest()
Class.forName("mymodule.Routes").routes.lift(request);
nhưng nó thất bại, bất cứ đề nghị?
chỉnh sửa 1: chơi 1 trong là có thể một cái gì đó như thế:
/{controller}/{action} {controller}.{action}
Nhưng trong play2 dường như không làm việc cũng
chỉnh sửa 2: Global.java hiện tại của tôi là
import play.GlobalSettings;
import play.Play;
import play.api.mvc.Handler;
import play.mvc.Http;
public class Global extends GlobalSettings
{
@Override
public Handler onRouteRequest(Http.RequestHeader request)
{
String path = request.path();
if (path.startsWith("/module/"))
{
String[] paths = path.split("/");
String router = paths[2];
try
{
return (Handler) Class.forName(router + ".Routes", true, Play.application().classloader()).newInstance();
}
catch (InstantiationException | IllegalAccessException | ClassNotFoundException e)
{
e.printStackTrace();
}
}
return super.onRouteRequest(request);
}
}
Và anh ấy tìm thấy các tuyến đường chính xác nhưng Ngoại lệ tức thì bị ném
Gọi 'newInstance()' có vẻ không thành công ở đây. Bộ định tuyến của bạn có hàm tạo công khai không tham số không? – Kapep
Vấn đề là những gì @kapep đã đề cập. Lớp 'Routes' không có hàm tạo mặc định. Nó có một loạt các phương thức tĩnh. Có một cái gọi là 'handlerFor' có vẻ đầy hứa hẹn nhưng nó có một đối tượng' play.api.mvc.RequestHeader', không phải là phiên bản Java 'play.mvc.Http.RequestHeader' được truyền vào phương thức' onRouteRequest'. – estmatic
Infact tôi phản ánh tuyến đường theo cách tĩnh nhưng tôi đã tìm thấy những vấn đề này. Vì vậy, các giải pháp thay thế? – user2054758