0

我正在遵循 spring 安全插件中这个 groovy 类的模板来维护我的多对多关系。

其中一种方法是这样的:

static UserEvent get(long userId, long eventId) {
    UserEvent.find 'from UserRole where user.id=:userId and event.id=:eventId',
            [userId: userId, eventId: eventId]
}

注意:此类没有 ID 属性。

问题

如何从我的 GSP 中使用此方法来验证它是否返回某些东西?

我已经尝试过了,但它似乎不起作用,它总是给我相同的结果:

<g:if test="${UserEvent.get(currentUserId as long, eventInstance.id as long) != null} ">
   <span>you attended this event</span>
</g:if>

当我在 UserEvent 类中有条目或没有条目时,这两种情况似乎都是正确的。

4

2 回答 2

4

在控制器中完成工作并将数据传递给视图。视图应该只关注显示数据,而不是计算数据,尤其是不进行数据库查询。这不是 PHP :)

将代码添加到控制器操作:

def yourAction() {
   // existing code

   UserEvent event = UserEvent.get(currentUserId as long, eventInstance.id as long)

   [foo: bar, ..., eventExists: event != null]
}

然后在 GSP 中使用它:

<g:if test="${eventExists}">
   <span>you attended this event</span>
</g:if>
于 2013-02-28T15:28:47.153 回答
0

如果你摆脱空测试,只依赖常规的事实,它会起作用吗?

<g:if test="${UserEvent.get(currentUserId as long, eventInstance.id as long)}">
于 2013-02-28T13:02:25.050 回答