Playframework 可以像这样玩2.x匹配动态URL吗

Playframework 可以像这样玩2.x匹配动态URL吗,playframework,playframework-2.0,Playframework,Playframework 2.0,我知道游戏可以匹配/something/{id}。我们想要的是更复杂一点,因为我可能会移植一个原型来玩,因为我真的很喜欢异步功能 我们有这样的网址 /services/<moduleA>/<moduleB>/.... 在现有系统中,可能有10个模块,也可能有3个,但客户机决定如何将模块连接在一起,返回的数据通过管道根据该url通过每个模块传输。在playframework中是否有这样做的潜力 谢谢, Dean您可以捕获以/services/开头的所有URL,并创建自己的

我知道游戏可以匹配/something/{id}。我们想要的是更复杂一点,因为我可能会移植一个原型来玩,因为我真的很喜欢异步功能

我们有这样的网址

/services/<moduleA>/<moduleB>/....
在现有系统中,可能有10个模块,也可能有3个,但客户机决定如何将模块连接在一起,返回的数据通过管道根据该url通过每个模块传输。在playframework中是否有这样做的潜力

谢谢,
Dean

您可以捕获以/services/开头的所有URL,并创建自己的requestDispatcher(未测试):

//routes
GET     /services/*toBeRouted    controllers.Dispatcher.dispatch(toBeRouted: String)

//Dispatcher object
def dispatch(toBeRouted: String) = Action { implicit request => 
    toBeRouted.split("/") match {
        case Nil => BadRequest(views.html.default.wrongModule())
        case _ => {
            ...//Route to the right controller
        }
    }
}
重要提示:跨越多个斜杠的路径规则必须使用星号而不是冒号:*toBeRouted


您可以进一步使用

仅捕获路由文件中的有效模式。您可以捕获以/services/开头的所有URL,并创建自己的requestDispatcher(未测试):

//routes
GET     /services/*toBeRouted    controllers.Dispatcher.dispatch(toBeRouted: String)

//Dispatcher object
def dispatch(toBeRouted: String) = Action { implicit request => 
    toBeRouted.split("/") match {
        case Nil => BadRequest(views.html.default.wrongModule())
        case _ => {
            ...//Route to the right controller
        }
    }
}
重要提示:跨越多个斜杠的路径规则必须使用星号而不是冒号:*toBeRouted


您可以进一步使用

仅捕获routes文件中的有效模式,感谢@marcus对包含斜杠的路径的打印错误,一切都在那里:感谢@marcus对包含斜杠的路径的打印错误,一切都在那里: