访问其ID中带有点(.)的bean

Arn*_*ism 8 java spring spring-webflow spring-el

在流定义中,我试图访问其ID中有一个点的bean

(例: <evaluate expression="bus.MyServiceFacade.someAction()" />

但是,它不起作用.SWF试图找到一个bean"总线".

最初,我通过使用辅助bean来加载所需的bean来解决它,但解决方案不够优雅且不舒服.使用别名也是不可能的,因为bean是大型系统的一部分,我无法篡改它们.

简而言之,解决方案都没有允许我使用其原始名称直接引用bean.这在当前的SWF版本中是否可能?

Rya*_*ord 8

我能够通过使用bean accessor(@)符号和bean名称周围的单引号来做到这一点.

使用你的例子: #{@'bus.MyServiceFacade'.someAction()}


Ste*_*ter 1

这是 EL 解析器的限制(对于 Spring Web Flow 通常是 OGNL 或 jboss-el)。EL 使用点表示法来解析导航链,导致您描述的初始行为(尝试查找“bus”bean)。