有没有办法过滤Play的CRUD表单中的某些字段?

时间:2011-11-28 10:23:48

标签: java playframework crud

我在自定义视图中使用此标记,为我的对象生成CRUD表单:

<div class="configForm">
  #{crud.form /}
</div>

这会在我自己的视图中生成一个CRUD表单。有没有办法通过删除一些我不想编辑的字段来自定义生成的表单?

我在form.html中发现了这一行:

#{list items:_fields ?: currentType.fields*.name, as:'fieldName'}

如果我正确阅读,那么有一个_fields参数可以让我选择加入字段(我更喜欢选择退出,但我会选择加入)。如何使用此_fields参数?

3 个答案:

答案 0 :(得分:4)

您可以过滤以下字段:

#{crud.form fields:['name', 'email', 'password']/}

将仅显示字段名称,电子邮件和密码

此致 罗纳德

答案 1 :(得分:2)

我写了一篇filtered version的CRUD ObjectType。控制器可以选择要过滤的字段,如下所示:

public static void show(long id) {
    MyModel object = MyModel.findById(id);
    CRUD.ObjectType type = new FilteredObjectType(MyModel.class, 
        "filteredField1",
        "filteredField2");
    render(type, object);
}

答案 2 :(得分:0)

您可以关注Play documentation。然后,您可以轻松编写自己的ExtCRUD类,该类忽略在Controller的静态变量中声明的所有字段。对于特殊情况,FilteredObjectType如何更容易解决。