【发布时间】:2014-09-14 02:10:35
【问题描述】:
尝试将过滤器表单添加到标准的 crud 'list' 页面。
// set filter defaults
ImageFilter defaultFilter = new ImageFilter();
defaultFilter.setYear(currentYear);
defaultFilter.setColor(user.getFavouriteColor());
// get filter for view
Form<ImageFilter> form = Form.form(ImageFilter.class).fill(defaultFilter).bindFromRequest();
ImageFilter filter = form.get()
- bindFromRequest() 单独获取带有用户指定过滤器的表单,但在首次加载时字段没有选定值
- fill(defaultFilter) 单独提供了一个选择了默认过滤器的表单
- 以这种方式链接的行为与最后调用的行为完全相同。
设置默认值的适当方法是什么?
理想情况下,在索引页面上:
- 未给定任何参数时的默认过滤器选择
- 如果使用 ?year=2010&color=blue 请求,这些过滤器会显示在表单上
- 如果使用 ?year=2010 请求,表单将显示 2010 年和用户最喜欢的颜色
【问题讨论】:
-
我的实际用例有 10 个左右可能的过滤器,这只是应用程序中众多模型中的第一个。真的希望有一个单一的解决方案。 (刚刚来自 Python/Django 项目,Java/Play 相当冗长)
标签: java forms playframework default-value playframework-2.2