我在 Play 2.1.4 项目中有一个搜索功能,该功能路由到 /search/:query。
我将如何处理用户搜索而不添加查询的情况?自 Play 2.1 以来,可选参数就消失了,我不认为使用不同的路由是一个很好的解决方案。
我在 Play 2.1.4 项目中有一个搜索功能,该功能路由到 /search/:query。
我将如何处理用户搜索而不添加查询的情况?自 Play 2.1 以来,可选参数就消失了,我不认为使用不同的路由是一个很好的解决方案。
实际上,两条路线有什么问题?从逻辑的角度来看,这是两个独立的操作:带参数的路由应该初始化搜索过程,而空的应该显示空的搜索表单或进行一些重定向。
GET /search/:term controllers.Application.search(term: String)
GET /search controllers.Application.blankSearch
可选地,您可以使用具有默认值(即空字符串)的路由,这是一种干净的方法,因为常见的 HTML 表单将以完全需要的格式发送请求:
GET /search controllers.Application.search(q: String ?= "")
(要求http://domain.loc/search?q=Looking+for+something
:)