将会话值从控制器传递到src / groovy类

时间:2014-07-08 17:58:58

标签: session grails groovy controller

我在会话中的控制器类中设置了一个变量,如下所示:

    session.webURL = webURL
    println "#####" + session.webURL`

现在,我想在我的src / groovy类中使用webURL的这个值。所以我在我的src / groovy BasicCrawler类中写道:

    println session.webURL

它显示了一个错误:消息:'没有这样的属性:类的会话:cmsprofiler.BasicCrawler'在org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50)

请告诉我我做错了什么。非常感谢。

1 个答案:

答案 0 :(得分:1)

您无法在任意类中访问该会话。如果愿意,可以将值作为参数传递给BasicCrawler中的方法。

// grails-app/controllers/demo/DemoController.groovy 
package demo
class DemoController {
    def someAction() {
        def crawler = new BasicCrawler()
        crawler.someMethod(session.webURL)
    }
}

// src/groovy/demo/BasicCrawler.groovy
package demo
class BasicCrawler {
    def someMethod(String url) {
        // ...
    }
}