使用过滤器创建一个简单的搜索框
问题描述:
编辑:所以我今天学习了关于检查字符串常量的一课。解决方案是在模板中将“过滤器”更改为“过滤器”。使用过滤器创建一个简单的搜索框
我试图建立一个简单的搜索框,用4个复选框来应用一些过滤器。问题是,即使在开发模式下检查,复选框也不会返回true。
我定义我的形式是这样,其中Filters
是一个案例类包装拿着4个布尔变量:
val searchBox = Form(
tuple("search" -> nonEmptyText,
"filters" -> mapping(
"filterpublic" -> boolean,
"filterprivate" -> boolean,
"filterstream" -> boolean,
"filterdownload" -> boolean
) (Filters.apply) (Filters.unapply)
)
)
我的HTML模板被像这样定义:
@form(action = routes.Application.getResults, 'id -> "searchBox") {
<fieldset>
<legend>Searchbox</legend>
@inputText(field = searchBox("search"), args = '_label -> "search",
'placeholder -> "Type here!")
@checkbox(field = searchBox("filter.filterpublic"), args =
'_label -> None, '_text -> "public")
@checkbox(field = searchBox("filter.filterprivate"), args =
'_label -> None, '_text -> "private")
@checkbox(field = searchBox("filter.filterstream"), args =
'_label -> None, '_text -> "streamable")
@checkbox(field = searchBox("filter.filterdownload"), args =
'_label -> None, '_text -> "downloadable")
<input type="submit" id="submit">
</fieldset>
}
我完全难住这可能源于什么。我已经咨询了这个剧本的教程!网站,但找不到解决这个特定问题的任何内容。
答
我认为您必须在模板中将“过滤器”更改为“过滤器”。所以'filters.filterpublic'而不是'filter.filterpublic'。