Grails 3 限制索引视图中的列

Grails 3 restricting columns in index view

多年后我又回到了 Grails,发现效率比以往任何时候都好,但在 Fields 插件和 "respond" 方法中遇到了一些障碍。我创建了一个带有 hasMany 的域 class,但不希望索引视图因指向这些子项的链接而变得杂乱无章。我可以通过放置 _table.gsp 模板并对其进行修改来消除该列,但是我不希望它在全局范围内应用。

我的下一次尝试是在控制器内的域对象上调用 "list" 并且 "collect" 仅调用我想要的列。当我将此结果传递给 "respond" 时,视图是空的,但没有错误。

进一步挖掘,我发现 "respond" 期望我收集的 PagedResultList 是 List 的薄包装。但是我上面的步骤returns一个ArrayList。我看不出如何构建 PagedResultList 并将 ArrayList 传递给 "respond" 悄悄地什么也不做。

我终于通过倒退得到了想要的外观,使用 "render" 和一个老式的手工构建的视图,但这似乎违背了 "respond" 简单优雅的目的和字段插件。

我是不是漏掉了一些简单的东西?

如果您 generating the views 对您的域感到满意,您可以修改 index.gsp 并指定如下属性:

<f:table collection="${authorList}" properties="['name', 'city', 'dob']" />

您也可以使用 'except' 指定要跳过的字段,docs here