在GSP文件中通过id获取对象

时间:2013-03-10 09:59:48

标签: grails gsp

我的部分域名模型Conversation有很多ChatMessage s

在我的index.gsp中,我有以下内容:

<g:each in="${allConversations}" var="conversation">
        ${conversation.chatMessages}
    </g:each>

显示特定用户的所有会话,将聊天消息输出为

[hi, how are you][another convo, hi again]

这是正确的结果。但我只想得到每个对话的第一条消息。我试过了

${conversation.chatMessages[0]}

${conversation.chatMessages.get(0)}

但无济于事。这个的正确语法是什么?

1 个答案:

答案 0 :(得分:2)

如果您希望能够通过 index 引用对话中的各个消息,那么您需要将关联声明为List:

class Conversation {
  static hasMany = [chatMessages: ChatMessage]

  List chatMessages

  // constraints, mapping, other properties...
}

如果您只有hasMany而没有List chatMessages,那么关联将被映射为Set而不是List,这样您就可以迭代但不能通过索引进行访问。

有关详细信息,请参阅grails文档中的sets, lists and maps