Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there default catch all route to new actions in Play 2?

In Play 1, new actions you defined had a default route.

*       /{controller}/{action}                  {controller}.{action}

(This appeared by default in new projects)

What is the Play 2/2.1 equivalent? Why doesn't it appear in the default routes file?

like image 349
ripper234 Avatar asked Feb 27 '13 17:02

ripper234


2 Answers

Actually there is a catch-all route available. According to the routing doc in Play 2.0+ you can use Dynamic parts spanning several / so if you put it as exactly last route of given method it will catch every route that wasn't catch before. You can use this for further processing for an example if you have other 'routes' stored in DataBase.

GET   /*path   controllers.Application.seacrhRouteInDB(path: String)
like image 128
biesior Avatar answered Sep 22 '22 05:09

biesior


Unfortunately the routes in Play Framework 2 don't have this feature.. However you can create a Global class that extends GlobalSettings and implement the catch all in the onRouteRequest method. Check API or documentation for details.

Note this is only available since 2.1.0.

like image 24
Mirko Adari Avatar answered Sep 23 '22 05:09

Mirko Adari