我正在使用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类中有一个条目或者我没有。
答案 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)}">