如何在SpEL表达式中显式引用spring bean

时间:2014-06-16 09:11:11

标签: spring-webflow spring-bean

嗨,我有一个名为" spring" - 如何在Webflow的SpEL表达式中明确引用它 - 显然我的意思是我不希望SpEL尝试找到任何其他名为" connection"这可能存在于webflow范围内 - 这就是我目前正在做的事情:

<action-state id="initialise-connection">
    <evaluate result="flowScope.initialisedConnection" expression="connection"/>

我读过关于&#34; @&#34;的前缀只针对豆类 - 什么是正确的做法,我该怎么做?

2 个答案:

答案 0 :(得分:0)

用于在Action

的子类内调用bean方法或evaluate方法的execute()标记

例如,如果您定义自己的操作,则应在@Component配置文件中将其初始化为bean或定义为XML

@Component
public class MyAction {
   public Connection doSomething(RequestContext context){
    ...
   }
}

在您的流定义XML文件中,您只需将其称为

<evaluate result="flowScope.initialisedConnection" expression="myAction.doSomething( flowRequestContext)"/>

但是如果你定义了Action类的子类,它就像这样

@Component
public class MyAction implements Action {

   @Override
   public Event execute(RequestContext context) {
     ...
   }
}

在您的流定义XML文件中,您可以将其称为

<evaluate result="flowScope.initialisedConnection" expression="myAction"/>

答案 1 :(得分:0)

这就是我以前在一个类中调用静态方法的方法。请试试这个。

<action-state id="initialise-connection">
    <evaluate result="flowScope.initialisedConnection" expression="@com.app.connection.method()"/>
</acton>