我有一个带有一堆过滤器的模型类:
@Entity
public class MyModel extends Model
{
String name;
String filterA;
String filterB;
String filterC;
}
基本上我将此用于包含搜索和搜索结果的页面。
提交搜索时非常简单,因为我只是发布并使用bindFromRequest()
来获取所有过滤器。
但是当我想要分页时,我发现它有问题。我希望能够在用户选择页面时记住这些选定的过滤器。分页链接是GET请求,因此我无法使用bindFromRequest()
。我四处寻找QueryStringBindable
,但我无法理解如何绑定模型。
理想情况下,我不希望必须将每个过滤器传递到分页链接,因为过滤器的数量可能会不断变化。
编辑:
一个更好的框架问题是,如果我在页面上有一堆过滤器,并且我点击另一个页码,我最好如何将过滤器信息发送到下一页,以便可以填充所有控件?通过每个过滤器不是很干净,因为过滤器的数量可以增加。
答案 0 :(得分:0)
最后,我能够使用QueryStringBindable解决分页问题。文档上有一个很好的例子 - https://www.playframework.com/documentation/2.3.1/api/java/play/mvc/QueryStringBindable.html
一旦我实现了这个界面,我就可以将MyModel作为参数传递给控制器动作以进行分页,并且它会将信息添加到url中,如果你想复制粘贴链接,那么该信息非常有用。