繁体   English   中英

GRAILS g:每个问题

[英]GRAILS g:each problem

我无法让 g:each 工作。 我正在尝试迭代任何东西,但它永远不会起作用=不生成任何 html。

索引.gsp

<g:each var="i" in="${userList}" controller="user">
          <li>Item ${i.name}</li>
</g:each>

用户控制器.groovy

class UserController {
    ...        
        def userList = {

            User.list()

        }
        ...
}

然后我有 User.groovy 填充用户数..

我应该在 in="${.....}" 中写什么来迭代例如声明为 User.groovy 的用户? 我试过:用户,用户,User.list()...

谢谢

编辑:

假设我有一个

def findOne {

 [users : User.findAllByNameLike("%Petr%")

}

在我的用户控制器中。

我如何使用 g:each 因为

<g:each var="user" in="${findOne}"> 

什么都不会。。

在你的例子中。 userList是一个闭包,所以它是动作名称,所以我假设您正在访问http://localhost:8080/appname/user/userList

如果您从要在 GSP 中呈现的 controller 操作返回某些内容,则它必须位于Map中,即“模型”。 map 中的每个值都在 GSP 中公开,使用 map 键作为其名称。 因此,与您的 GSP 对应的 controller 操作将是

def userList = {
    [users: User.list()]
}

然后你可以迭代

<g:each var="user" in="${users}">
    <li>Item ${user.name}</li>
</g:each>

名称无关紧要 - 它只需要在 model map 中与 GSP 中相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM