如何过滤g:select?

How to filter in a g:select?

我是 Grails 和 gsp 的新手。我试图找到有关这是否可行的文档 - 我发现了一个类似的问题,但未能成功应用它。

我有这个g:select声明:

<g:select name="users"  multiple="multiple"
     optionKey="id"
     optionValue="name"
     value="${user?.users*.id}"
     from="${user.getUsers()}"
/>

我想知道是否可以为此添加过滤器或条件。我只能 select 个位于特定国家 (users.country) 的用户。

I was wondering if it was possible to add a filter to this, or a condition.

是。

看起来您在模型中有一个 user 属性,该对象是某个 class 的实例,它有一个名为 users 的集合。

您应用中的某些内容正在将 user 放入模型中,可能是控制器操作。最佳做法是不要在 GSP 中嵌入太多逻辑,因此我建议控制器进行过滤并将符合条件的对象放在 GSP 可以引用的单独模型变量中,而不是 user.getUsers(),或者您可以创建自定义接受 user 并生成 select.

的 GSP 标签