当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");
}
我怎么可以调节它为它知道它正在采取字符串,特殊字符或在此声明空'/雇员/ - 字符串,空或其他任何---'? – NoobProgrammer
我需要像这样使用正则表达式'/ employee/$ p ^([^ 0-9] *)$ />'? – NoobProgrammer
您确定可以:https://www.playframework.com/documentation/2.6.x/ScalaRouting#Dynamic-parts-with-custom-regular-expressions – NateH06