访问ID中带有点(。)的bean
时间:2020-03-05 18:53:25 来源:igfitidea点击:
在流定义中,我试图访问其ID中带有点的Bean。
(例如:<evaluate expression =" bus.MyServiceFacade.someAction()" />
但是,它不起作用。 SWF尝试查找一个"总线" bean。
最初,我通过使用辅助bean来加载所需的bean来解决了这个问题,但是该解决方案不雅且不舒服。别名的使用也是不可能的,因为bean是大型系统的一部分,我不能篡改它们。
简而言之,没有一个解决方案允许我使用其原始名称直接引用Bean。在当前的SWF版本中,这是否有可能?
解决方案
回答
这是EL解析器的限制(对于Spring Web Flow,通常为OGNL或者jboss-el)。 EL使用点表示法来解析导航链,从而引起我们描述的初始行为(试图找到" bus" bean)。
回答
以我的经验,任何使用getter方法的东西都可以通过点表示法进行访问。在示例中," bus" bean表示的任何对象都需要具有" getServiceFacade"方法,而由" getServiceFacade"返回的对象将需要具有" getSomeAction"方法。
回答
尝试:
['bus.MyServiceFacade']。someAction()
或者
'bus.MyServiceFacade'.someAction()
这可能行得通,也可能行不通...但是JSP的表达式语言中使用了类似的东西。