Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Playframework 具有多个参数的Play框架路由_Playframework - Fatal编程技术网

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){}