如何在GSP中使用我的groovy类中的get方法

时间:2013-02-28 13:01:14

标签: grails gorm

我正在使用spring安全插件中的this groovy class模板来维护我的多对多关系。

其中一种方法是这样的:

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类中有一个条目或者我没有。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

如果你摆脱空测试,只依靠常规真相,它会起作用吗?

<g:if test="${UserEvent.get(currentUserId as long, eventInstance.id as long)}">