当url更改提示页面未找到时。玩! +斯卡拉

问题描述:

我在分页当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) 

你可以阻止人们的切换参数的那名整体改变你的路由。但要实现你所想做的事列出的所有可能性,你可以做到以下几点:

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 ^([^ 0-9] *)$ />'? – NoobProgrammer

+1

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