访问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的表达式语言中使用了类似的东西。