Playframework 具有多个参数的Play框架路由
我正在尝试建立一个搜索引擎优化友好的路线发挥!具有多个参数的框架(第二个参数是可选的)。我的目标是:Playframework 具有多个参数的Play框架路由,playframework,Playframework,我正在尝试建立一个搜索引擎优化友好的路线发挥!具有多个参数的框架(第二个参数是可选的)。我的目标是: 我已经通过以下映射实现了您想要的: 路线: GET /{<[0-9]+>id}/{slug} Listing.show GET /{<[0-9]+>id} Listing.show 然后可以从一个视图中使用它: #{a @Listing.show(item.id, item.title.slug
我已经通过以下映射实现了您想要的: 路线:
GET /{<[0-9]+>id}/{slug} Listing.show
GET /{<[0-9]+>id} Listing.show
然后可以从一个视图中使用它:
#{a @Listing.show(item.id, item.title.slugify())}link title#{/a}
#{a @Listing.show(item.id)}link title#{/a}
您的模板似乎与第一条路线匹配。颠倒顺序就行了
GET /article/{username}/{articleSlug} Article.show
GET /article/{username} Article.show
也让你的控制器接受用户名和articleSlug
show(username, articleSlug){}
可能由于未知原因,无法解释item.title.slugify()。。。在包含var slug=item.title.slagify()之前,您是否尝试创建一个变量,然后呢?您的第一个模板将采用第二种方法。对于第二个模板,您是否有匹配的控制器,即show(id,slug)?是!缺少第二个控制器方法。我想我们可以容忍这个,只是不使用第二个参数。
public static void show(Long id, String slug) { /* ... */ }
public static void show(Long id) { /* ... */ }
#{a @Listing.show(item.id, item.title.slugify())}link title#{/a}
#{a @Listing.show(item.id)}link title#{/a}
GET /article/{username}/{articleSlug} Article.show
GET /article/{username} Article.show
show(username, articleSlug){}