【问题标题】:Sending data to "View" from "Controller"从“控制器”发送数据到“视图”
【发布时间】:2011-03-31 09:00:23
【问题描述】:

在我的控制器类中有以下代码

class MyController {

    def flickrService

    def index = {
        def data = flickrService.search {
            tags 'tag,tag2,tag3'
            page 3
            perPage 14 // Look ma!
        }
        [urls:data.urls,page:data.page,pages:data.pages]
    }

}

我还创建了一个 index.gsp 文件。 由于我是 groovy grails 的新手 - 我无法弄清楚如何访问视图中 flickrservice 返回的数据。我可以只访问上面在索引视图中定义的“数据”,还是需要在控制器中设置它,然后才能遍历返回的数据?任何帮助将不胜感激。谢谢

【问题讨论】:

    标签: grails groovy


    【解决方案1】:

    是的,现在您可以从视图中访问数据,例如,在 index.gsp 中:

    <html><head>Test</head><body>${urls} <br/> ${page} </body></html>
    

    一般来说,grails默认返回函数中的最后一个值,所以如果你想访问很多数据,你可以这样做:

    class MyController {
    
        def flickrService
    
        def index = {
            def data = ...
            def data1 = ...
            def data2 = ...
    
            // Here's the return result:
                [view_data:data,view_data1:data1, view_data2:data2]
        }
    
    }
    

    然后就可以在视图中访问${view_data},${view_data1},${view_data2}了。

    【讨论】:

    • 谢谢我刚刚想通了.. 你能帮我做另一个查询吗.. 如果我在“def data”之上但在“def index”hw 中有 max=10 则将这个值传递给每页选项?我试过“perpage max”但抛出错误?
    • @Kay 你能把这个作为一个单独的问题发布,我会尽力帮助
    • @Kay:使用前必须定义“max”变量:def max = 10
    • @Long .. 也许是的,但我实际上尝试了 params.max 并且它有效(仅最大无效)谢谢
    • @Kay:你可以使用 params.max,所以 max 已经在请求的参数中设置了。我认为你应该参考这个链接:grails.org/doc/1.0.x/guide/6.%20The%20Web%20Layer.html,在 6.1.2 以更清楚地理解问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    • 1970-01-01
    • 2012-07-15
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多