以 Java 计算机数据库示例作为 Play!2.1 我正在为大约 20 个模型开发一个 CRUD 管理后端。我面临的问题是在模板级别一遍又一遍地重复相同的功能。
我试图将链接功能重构为:
@****************************************
* Helper generating navigation links *
****************************************@
@link(newPage:Int, newSortBy:String) = @{
// Generate the link
controllers.admin.routes.Model.index(newPage, "id", newSortBy)
}
像这样的东西
@(controller: Any, newPage: Int, newSortBy: String)
any.index(newPage, "id", newSortBy)
由于反向路由器不继承任何特定的类,我不能以通用的方式来做。并且前面的代码不起作用,因为我不进行类型转换(我猜是因为编译器错误是“值索引不是 Any 的成员”)
有什么方法可以在运行时获取已定义路由的列表?不管它是在 Scala 模板还是 Java 端,这样我都可以传递控制器名称并获取正确的反向路由器来创建 URL。
如果不可能,那么重构所有在模板上重复的代码的正确方法是什么,特别是那些依赖于 ReverseRouters 的代码。