gpt4 book ai didi

Grails GSP 模型注入(inject)错误

转载 作者:行者123 更新时间:2023-12-02 16:03:29 24 4
gpt4 key购买 nike

我有以下 Grails 2.3.6 Controller :

@Slf4j
class FizzController {
def index() {
List<Widget> widgets = getSomehow()

log.info("About to render foo.gsp with ${widgets.size()} widgets.")

render (
view: "foo",
model: widgets
)
}
}

在哪里 foo.gsp是:
<!DOCTYPE html>
<html>
<head>
<omitting a bunch of stuff for brevity>
</head>
<body>
<h3>Widget List:</h3>
<g:each in="${widgets}" var="widget" >
<h2>Name: ${widget.name}, Type: ${widget.type}</h3>
</g:each>
</body>
</html>

当我做一个 Grails run-app并将我的浏览器导航到:
http://localhost:8080/myapp/fizz

我看到我的 foo GSP View /页面(带有 <h3> 标题标签),但它不显示任何其他内容。当我查看页面源代码时,我看到:
<div id="page-body">
<h3>Widget List:</h3>
</div>

这表明我正在注入(inject)一个空的 List<Widget> , 对?

然而在我的日志输出中,我看到:

About to render foo.gsp with 1 widgets.



所以看起来我确实有一个非空的 List<Widget> ,但显然我没有正确地将其注入(inject)我的 GSP 中。那么这里发生了什么?

最佳答案

你传递了错误的模型,它应该是一张 map :

    List<Widget> widgets = getSomehow()

render (
view: "foo",
model:[ widgets:widgets ]
)

然后你可以在你的 gsp 中访问它:
<g:each in="${widgets}" var="widget" >
<h2>Name: ${widget.name}, Type: ${widget.type}</h3>
</g:each>

关于Grails GSP 模型注入(inject)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27679869/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com