小编Jon*_*son的帖子

Grails:如何在标记库中使用请求范围的服务?

我对Grails社区比较陌生,但我已经非常喜欢引擎所提供的功能了.目前,我正在实现一个自定义标记库,以便在我们的页面上轻松实现标准设计.但是,我需要一种为实用程序调用辅助函数的方法(例如过滤数据)以及存储关于我的标记的请求级元数据(例如计数器,父/子关系).

我试过两个解决方案:

第一:我创建了一个服务,将其范围设置为"请求"

package myapp

class CustomTagService {
    static scope = 'request'
    def data = []

    def add(localData) {
        data.add(localData)
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试将其注入我的标签库时

package myapp

class MyTagLib {
    def customTagService

    def myTag = { attrs, body ->
        customTagService.add(attrs)
    }

}
Run Code Online (Sandbox Code Playgroud)

引擎向我大吼大叫引用请求范围(经过长时间的痛苦堆栈跟踪):" 范围'请求'对于当前线程不活动;如果您打算从单例引用它,请考虑为此bean定义范围代理 "

第二:我理解pageScope在标签关闭内部可用,我之前已经开发过了.然而,对于我想要的结构,封装将是更优选的.

如果我走错了路,请告诉我.我们欢迎所有的建议!

grails taglib

3
推荐指数
1
解决办法
1111
查看次数

标签 统计

grails ×1

taglib ×1