在grails分页中去掉不需要的参数
我有一个搜索网页,用户可以通过一个人的种族作为复选框组过滤搜索结果。有12个“种族”复选框。参数按如下方式传递到g:paginate,以便用户可以翻页查看结果并保留在“种族”复选框中选中的内容:在grails分页中去掉不需要的参数,grails,Grails,我有一个搜索网页,用户可以通过一个人的种族作为复选框组过滤搜索结果。有12个“种族”复选框。参数按如下方式传递到g:paginate,以便用户可以翻页查看结果并保留在“种族”复选框中选中的内容: <g:paginate controller="search" action="list" total="${resultCount}" params="${params}"/> 链接的输出包括每个构建URL的一组不必要的数据: <a href="/myapp/search/li
<g:paginate controller="search" action="list" total="${resultCount}" params="${params}"/>
链接的输出包括每个构建URL的一组不必要的数据:
<a href="/myapp/search/list?_ethnicity=&_ethnicity=&_ethnicity=&_ethnicity=&_ethnicity=&_ethnicity=&_ethnicity=&_ethnicity=&_ethnicity=&_gender=&_gender=&_gender=&accountType=2&ethnicity=1&ethnicity=5&max=3&offset=3" class="step">2</a>
我希望分页链接URL的输出不包含在原始搜索帖子中传回的所有额外变量:
<a href="/myapp/search/list?accountType=2&ethnicity=1&ethnicity=5&max=3&offset=3" class="step">2</a>
如何在没有所有额外的不必要字段的情况下将参数放入paginate标记中?从功能上讲,它是有效的,但是paginate get请求的URL太长,看起来很可怕。试试这个
<g:paginate controller="search" action="list" total="${resultCount}" params="${params.findAll { it.key == 'ethnicity' && it.value }}"/>
试试这个
<g:paginate controller="search" action="list" total="${resultCount}" params="${params.findAll { it.key == 'ethnicity' && it.value }}"/>
试试这个
<g:paginate controller="search" action="list" total="${resultCount}" params="${params.findAll { it.key == 'ethnicity' && it.value }}"/>
试试这个
<g:paginate controller="search" action="list" total="${resultCount}" params="${params.findAll { it.key == 'ethnicity' && it.value }}"/>
对于前一个用户,这可以过滤掉额外的字段,尽管这很难看
params="${params.findAll { a ->
if (!a.key.toString().startsWith("_")) {
return a.value
}
}
}"
编辑:
实际上,一种更干净的方法是将其放入控制器中:
params.keySet().asList().each { if (it.toString().startsWith("_")) params.remove(it) }
然后在g:paginate
中,您可以使用
params="${params}"
对于前一个用户,这可以过滤掉额外的字段,尽管这很难看
params="${params.findAll { a ->
if (!a.key.toString().startsWith("_")) {
return a.value
}
}
}"
编辑:
实际上,一种更干净的方法是将其放入控制器中:
params.keySet().asList().each { if (it.toString().startsWith("_")) params.remove(it) }
然后在g:paginate
中,您可以使用
params="${params}"
对于前一个用户,这可以过滤掉额外的字段,尽管这很难看
params="${params.findAll { a ->
if (!a.key.toString().startsWith("_")) {
return a.value
}
}
}"
编辑:
实际上,一种更干净的方法是将其放入控制器中:
params.keySet().asList().each { if (it.toString().startsWith("_")) params.remove(it) }
然后在g:paginate
中,您可以使用
params="${params}"
对于前一个用户,这可以过滤掉额外的字段,尽管这很难看
params="${params.findAll { a ->
if (!a.key.toString().startsWith("_")) {
return a.value
}
}
}"
编辑:
实际上,一种更干净的方法是将其放入控制器中:
params.keySet().asList().each { if (it.toString().startsWith("_")) params.remove(it) }
然后在g:paginate
中,您可以使用
params="${params}"