为什么我的路线不匹配任何动作

时间:2014-12-27 23:43:40

标签: regex playframework

使用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)

但是我收到错误页面“找不到行动”

1 个答案:

答案 0 :(得分:1)

您缺少网址前缀和&#34; +&#34;在路由定义中的正则表达式中。这是我的路由配置,它工作正常

#Regex test
GET         /$prefix<.*>$postId<\d+$>         controllers.Application.viewPost(prefix:String,postId: Int)

Controllers.Application.viewPost

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"

**测试,它有效。