Play 框架的路由始终调用默认路由



我定义了以下路由:

GET /practiceexams      controllers.content.ExamController.allExams
GET /practiceexams/:id  controllers.content.ExamController.allExamsForTechnology(id: Int)

我的第二条路由的 URL 如下所示:

http://localhost:9000/practiceexams?id=1000

但是由于某种我无法理解的原因,调用总是落在默认网址中,即/practiceexams。我错过了什么吗?

您在第二个路由中指定了id作为路径参数,但您的 URL 将其用作查询参数。那不好。

试试这个:

http://localhost:9000/practiceexams/1000

此路由将id定义为路径参数:

GET /practiceexams/:id  controllers.content.ExamController.allExamsForTechnology(id: Int) 

此路由将id定义为查询参数:

GET /practiceexams  controllers.content.ExamController.allExamsForTechnology(id: Int)

有关更多详细信息,请参阅文档。