我正在使用Play 2.4 with Java,我已经有了这条路线:
GET /page/:slug controllers.Application.page(slug: String)
因此,例如,如果slug = this-is-a-slug
没有问题,那么路线如下:
/page/this-is-a-slug
但是,如果slug = first-part-of-the-slug/second-part-of-the-slug
,则网址栏会显示:
/page/first-part-of-the-slug%2Fsecond-part-of-the-slug
我想避免编码slug,知道slug'部分的数量'未定义,并将slug作为一个独特的参数。
我怎么能这样做?任何帮助表示赞赏。
答案 0 :(得分:2)
您需要使用“*”,如:
/page/*slug
在文档https://www.playframework.com/documentation/2.4.x/JavaRouting
中查找“跨越多个/ 的动态部分”部分如果您希望动态部件捕获多个URI路径段, 通过正斜杠分隔,您可以使用正斜杠定义动态部分 * id语法,它使用。*正则表达式:
GET /files/*name controllers.Application.download(name)
此处,对于
GET /files/images/logo.png
之类的请求,name
动态 part将捕获images/logo.png
值。