我今天开始在Grails 2.2.4项目上使用Webflow,我立即遇到了以下异常:
could not initialize proxy - no Session
我在this SO question上进行了一些研究,然后我将this JIRA issue标记为无法修复,因为在TagLib中进行GORM调用被认为是错误的想法。
由于这种东西似乎在常规操作中运行良好,我之前没遇到过这个问题。我的问题是,如何构建以下代码,以便我遵循正确的做法。
我有一个名为_nav.gsp的模板,用于处理我的网站导航栏。根据用户的角色,显示和隐藏了许多菜单选项。我在TagLib中有以下内容:
def ifProjectGranted = { attr, body ->
def authenticatedUser = docRegService.authenticatedUser
if (authenticatedUser) {
def roles = UserRole.findAllByUser(authenticatedUser).collect { it.role.authority }
// here I check roles and manage my rendering to the output
}
}
我知道我可以将findAllByUser
封装在withTransaction
块中来解决问题。但根据JIRA,我不应该在这里进行这种查找。那么我会在哪里做呢?