0

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

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

我已经阅读了有关以“@”为前缀仅针对 bean 的内容-正确的做法是什么,我该怎么做?

4

2 回答 2

0

这就是我过去在我的一个类中调用静态方法的方式。请试试这个。

<action-state id="initialise-connection">
    <evaluate result="flowScope.initialisedConnection" expression="@com.app.connection.method()"/>
</acton>
于 2014-07-01T21:20:28.637 回答
0

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

例如,如果您定义自己的操作,则应将其初始化为@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"/>
于 2014-07-01T05:12:07.927 回答