2

我在 Play 2.1.4 项目中有一个搜索功能,该功能路由到 /search/:query。

我将如何处理用户搜索而不添加查询的情况?自 Play 2.1 以来,可选参数就消失了,我不认为使用不同的路由是一个很好的解决方案。

4

1 回答 1

3

实际上,两条路线有什么问题?从逻辑的角度来看,这是两个独立的操作:带参数的路由应该初始化搜索过程,而空的应该显示空的搜索表单或进行一些重定向。

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:)

于 2013-10-23T14:18:30.603 回答