使用play框架,我正在尝试使用正则表达式匹配路由。
我想要的是使用一个映射所有这些网址的操作:
mydomain.com/my-post-title-123
mydomain.com/another-post-title-124
mydomain.com/a-third-post-title-125
从网址末尾获取“123,124和125”,以便控制器可以使用它。基本上忽略任何贴瓷砖进来,只使用最后的数字。
我在routes.conf上有以下内容
GET /$postId<\d$> controllers.Posts.viewPost(postId: Int)
但是我收到错误页面“找不到行动”
答案 0 :(得分:1)
您缺少网址前缀和&#34; +&#34;在路由定义中的正则表达式中。这是我的路由配置,它工作正常
#Regex test
GET /$prefix<.*>$postId<\d+$> controllers.Application.viewPost(prefix:String,postId: Int)
def viewPost(prefix:String,postId:Int) = Action{
Ok("the post id is: "+postId+" the prefix is:"+prefix)
}
,输出将是
the post id is: 123 the prefix is "whatever/prefix/you/give"
**测试,它有效。