GenericService.resolveName(java.lang.String pName)
当我尝试对会话范围使用类似
错误时,我收到了上述错误 。如果我将范围更改为“全局”,则一切正常。但我需要让我的组件在原型范围内。那我能做什么..?
问问题
2661 次
2 回答
1
请验证您的要求以确保您确实必须使用原型范围。
由于我们不知道您的要求,我们无法验证您想要实现的是否是一个好的实践,但我的 2 美分来克服您的技术问题是从请求级别开始解决该组件。
如果您有权访问当前请求,请执行以下操作:
request.resolveName(componentName);
否则,请执行以下操作:
ServletUtil.getCurrentRequest().resolveName(componentName);
resolveName 是一个计算量很大的操作,所以它应该只在你没有任何其他选项时使用(例如在请求 servlet 管道中,引用请求或会话组件),但如果你必须这样做,它会解决你的问题。
于 2013-09-17T09:49:34.203 回答
0
您可能无法从更高范围的对象解析更低范围的组件。
如果您从全局范围内调用 resolveComponent,组件可能无法解析它。
组件的属性应始终指向其范围等于或大于其自身的对象。因此,全局范围的组件属性应该只指向也具有全局范围的对象;session-scope 组件属性应该只指向具有全局或会话范围的对象;而请求范围组件属性可以指向任何范围的对象,包括请求。
请阅读下面的 ATG 文档
于 2013-08-31T20:30:19.683 回答