2017-10-13 104 views
2

我在分頁當url更改提示頁面未找到時。玩! +斯卡拉

http://localhost:9000/employee?p=2 

我需要提示找不到網頁,只要參數「P」是改變對我的網頁下面的網址。例如:

http://localhost:9000/employee?b=2 

它需要控制器來輸入NOTFOUND。我會做什麼樣的條件來做到這一點?

參考:

控制器:

​​

路線:

# Employee list (look at the default values for pagination parameters) 
GET  /employee     controllers.Application.list(p:Int ?= 1,l:Int ?= 125) 

回答

1

你可以阻止人們的切換參數的那名整體改變你的路由。但要實現你所想做的事列出的所有可能性,你可以做到以下幾點:

GET  /employee/:p/:l  controllers.Application.list(p:Int ?= 1,l:Int ?= 125) 
    GET  /employee/p/:p   controllers.Application.list(p:Int, 125) 
    GET  /employee/l/:l   controllers.Application.list(1, l:Int) 

這要看你如何處理URL調用模板,但如果你能有一個自動生成如果用戶沒有放入默認參數,你可以保留第一個參數。

的URL召喚你的控制器現在將改爲:

http://localhost:9000/employee/p/2 
    http://localhost:9000/employee/l/4 
    http://localhost:9000/employee/2/4 

然後你可以路由別的到沒有找到控制器的方法:

GET  /employee/--String, empty or whatever else---  controllers.Application.returnNotFound 

@Transactional(readOnly=true) 
public static Result returnNotFound() { 

    return notFound("<h1>Page not found</h1>").as("text/html"); 

} 
+0

我怎麼可以調節它爲它知道它正在採取字符串,特殊字符或在此聲明空'/僱員/ - 字符串,空或其他任何---'? – NoobProgrammer

+0

我需要像這樣使用正則表達式'/ employee/$ p'? – NoobProgrammer

+1

您確定可以:https://www.playframework.com/documentation/2.6.x/ScalaRouting#Dynamic-parts-with-custom-regular-expressions – NateH06