2014-01-31 174 views
0

我想抓住所有未知的GET操作。玩框架路線

我的路線文件看起來像這樣:

GET /      controllers.MainController.index() 
#All other routes 

#finally 
GET  /[^/]+/     controllers.MainController.fault() 

最終GET的定義是因爲對上述問題給予優先列表的底部GET操作,否則所有的請求將是真正到了/ [^/] + /條件。

的問題是,它關係到默認捕捉頁面說

我怎麼能捕獲所有路線「未找到操作」?

回答

2

我相信

GET /*route controllers.MainController.fault() 

會更好地工作。 route將捕獲收到的路徑,您可以將它作爲參數傳遞給您的方法fault

不過,我建議另一種選擇:你可以實現一個GlobalSettings對象,你覆蓋的方法

def onHandlerNotFound(request: RequestHeader): Future[SimpleResult] 

這種方法將在每次你得到了它不可能找到一個請求時,被稱爲正確的處理程你可以在這裏找到更多的信息:http://www.playframework.com/documentation/2.2.x/ScalaGlobal

+0

完美!那正是我想要的。 GET/*路由控制器.MainController.fault(路由) public static Result fault(String url){ return badRequest(url +「not found」); } – user1275645

+0

現在,我還得到它與自定義全局類的工作。 但定義是有點不同: 倍率DEF onHandlerNotFound(請求:RequestHeader)= { Future.successful(NOTFOUND( views.html.errorpage(Request的))) } – user1275645