我不能得到g:每个都工作.我试图迭代任何东西,但它永远不会工作=不生成任何HTML.
index.gsp中
<g:each var="i" in="${userList}" controller="user">
<li>Item ${i.name}</li>
</g:each>
Run Code Online (Sandbox Code Playgroud)
userController.groovy
class UserController {
...
def userList = {
User.list()
}
...
}
Run Code Online (Sandbox Code Playgroud)
然后我有User.groovy充满了用户数量..
我应该在="$ {.....}"中写什么来迭代例如声明为User.groovy的用户?我试过了:用户,用户,User.list()...
谢谢
编辑:
假设我有一个
def findOne {
[users : User.findAllByNameLike("%Petr%")
}
Run Code Online (Sandbox Code Playgroud)
在我的UserCotroller中.
我如何使用g:each for it因为
<g:each var="user" in="${findOne}">
Run Code Online (Sandbox Code Playgroud)
什么都不做..
在你的例子中.userList是一个Closure,所以它是动作名称,所以我假设您正在访问http:// localhost:8080/appname/user/userList
如果从要在GSP中呈现的控制器操作返回某些内容,则它必须位于Map"模型"中.地图中的每个值都使用地图键作为其名称在GSP中公开.因此,与您的GSP相对应的控制器操作将是
def userList = {
[users: User.list()]
}
Run Code Online (Sandbox Code Playgroud)
然后你可以迭代
<g:each var="user" in="${users}">
<li>Item ${user.name}</li>
</g:each>
Run Code Online (Sandbox Code Playgroud)
名称无关紧要 - 它只需在模型图中与GSP中相同.
| 归档时间: |
|
| 查看次数: |
2214 次 |
| 最近记录: |