当我尝试使用GenericService.resolveName(java.lang.String pName)
时,我收到了上述错误
会话范围的similer错误也是如此。
如果我将范围更改为“全局”,则事情按预期工作。但我需要将我的组件放在原型范围内。那我能做些什么..?
答案 0 :(得分:1)
请验证您的要求,以确保您确实必须使用原型范围。
由于我们不了解您的要求,我们无法验证您尝试实现的是否是一种良好做法,但我克服您的技术问题的2美分是从请求级别开始解决该组件。
如果您有权访问当前请求,请执行以下操作:
request.resolveName(componentName);
否则,请执行以下操作:
ServletUtil.getCurrentRequest().resolveName(componentName);
resolveName是一个计算成本很高的操作,因此只应在没有任何其他选项时使用它(例如在请求servlet管道中,以引用请求或会话组件),但如果必须,它会解决你的问题。
答案 1 :(得分:0)
您可能无法从更高范围的对象中解析较低范围的组件。
如果从全局范围组件调用resolveComponent,则可能无法解析它。
组件的属性应始终指向范围等于或大于其自身的对象。因此,全局范围组件属性应仅指向也具有全局范围的对象;会话范围组件属性应仅指向具有全局或会话范围的对象;而请求范围组件属性可以指向任何范围的对象,包括请求。
请阅读下面的ATG文档